Excel dosyasınden C# ile veri okuma ASP.NET içerisinde, Excel dosyanın içinedeki tüm sayfaları gezebilir, içerisindeki kolon isimlerine göre sizin DB update veya insert yapabilirsiniz.
if (FileUpload1.HasFile)
{
try
{
int uk = 0,yk=0;
lbl_durum.Text = "";
String ext = System.IO.Path.GetExtension(FileUpload1.FileName);
if (ext.ToLower() != ".xls" )
{
lbl_durum.Text = "Uzantı yanlış.";
return;
}
string path = string.Concat(Server.MapPath("~/ExcelFiles/FromUsers/" + FileUpload1.FileName));
FileUpload1.SaveAs(path);
// Connection String to Excel Workbook
string excelConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR=Yes'", path);
using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
{
try
{
connection.Open();
DataTable dt = new DataTable();
dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
lbl_durum.Text = "Dosyanın içinde sayfa yok.";
return;
}
String[] excelSheets = new String[dt.Rows.Count];
int t = 0;
//excel data saves in temp file here.
foreach (DataRow row in dt.Rows)
{
excelSheets[t] = row["TABLE_NAME"].ToString();
t++;
}
OleDbDataAdapter adap = new OleDbDataAdapter("select * from [" + excelSheets[0] + "] WHERE UZM_ID>0", connection);
DataTable liste = new DataTable();
adap.Fill(liste);
for (int i = 0; i < liste.Rows.Count; i++)
{
string up = "";
if (liste.Rows[i]["UZM_ID"].ToString() == "") break;
for (int j = 0; j < liste.Columns.Count; j++)
{
if (liste.Columns[j].ColumnName == "UZM_ID" || liste.Columns[j].ColumnName == "CDate")
{
continue;
}
if (liste.Rows[i][j].ToString() != "")
{
if (liste.Columns[j].ColumnName == "Disabled")
up += liste.Columns[j].ColumnName + "=" + liste.Rows[i][j].ToString() + ", ";
else
up += liste.Columns[j].ColumnName + "='" + liste.Rows[i][j].ToString() + "', ";
}
else
if (liste.Rows[i][j].ToString() == "NULL")
{
up += liste.Columns[j].ColumnName + "=NULL, ";
}
}
if (up.EndsWith(", ")) up = up.Substring(0, up.Length - 2);
if(up.Length>0)
if ("" != SQLCalistir_N("UPDATE Uzmanlar SET " + up + " WHERE UZM_ID='" + liste.Rows[i]["UZM_ID"] + "'"))
uk++;
}
lbl_durum.Text += " " + uk.ToString() + " kayıt üzerinde güncellenme yapıldı. ";
//yeni eklenecekler
adap = new OleDbDataAdapter("select * from [" + excelSheets[0] + "] WHERE UZM_ID=0", connection);
liste = new DataTable();
adap.Fill(liste);
for (int i = 0; i < liste.Rows.Count; i++)
{
string fld = "";
string dgr = "";
for (int j = 0; j < liste.Columns.Count; j++)
{
if (liste.Columns[j].ColumnName == "UZM_ID" || liste.Columns[j].ColumnName == "CDate" || liste.Columns[j].ColumnName == "Disabled")
{
continue;
}
if (liste.Rows[i][j].ToString() != "")
{
fld += liste.Columns[j].ColumnName+ ", ";
dgr += "'" + liste.Rows[i][j].ToString() + "', ";
}
}
if (fld.EndsWith(", ")) fld = fld.Substring(0, fld.Length - 2);
if (dgr.EndsWith(", ")) dgr = dgr.Substring(0, dgr.Length - 2);
if ("" != SQLCalistir_N("INSERT INTO Uzmanlar ("+fld+") VALUES ("+dgr+")"))
yk++;
}
lbl_durum.Text += " " + yk.ToString() + " kayıt yeni eklendi. ";
}
catch (Exception ex)
{
lbl_durum.Text = ex.Message;
}
}
}
catch (Exception ex)
{
lbl_durum.Text = ex.Message;
}
}
}