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;

                }

            }

        }