C#讀Excel并存入數據庫
作者:GodSpeed
本文將介紹C#讀Excel并存入數據庫。直接從Excel中讀取出來,然后對"供應商" select distinct,然后分別對每個供應商做表.
直接讓C#讀Excel,然后對"供應商" select distinct,然后分別對每個供應商做表。這樣C#讀Excel并存入數據庫就完成了。
- protected void Page_Load(object sender, EventArgs e)
- {
- DataSet ds = ImportExcel(Server.MapPath("ExcelFile/供應商違約扣款.xls")); //C#讀Excel
- GridView1.DataSource = ds.Tables["ExcelInfo"].DefaultView;
- GridView1.DataBind();
- ToDataBase(ds);
- }
- private DataSet ImportExcel(string strFileName)
- {
- if (strFileName == "") return null;
- string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
- "Data Source=" + strFileName + ";" +
- "Extended Properties=Excel 8.0;HDR=Yes;IMEX=1";
- OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT trim(供應商) as 供應商,零件名稱,型號,批量,下線數,下線率,不合格原因,考核原因,考核金額 FROM [Sheet1$]", strConn);
- DataSet ExcelDs = new DataSet();
- try
- {
- ExcelDA.Fill(ExcelDs, "ExcelInfo");
- }
- catch (Exception err)
- {
- System.Console.WriteLine(err.ToString());
- }
- return ExcelDs;
- }
- private bool ToDataBase(DataSet ds)
- {
- DataTable dtSupplier = new DataTable("dtSupplier");
- DataView dv = ds.Tables[0].DefaultView;
- string[] column = { "供應商" };
- dtSupplier = dv.ToTable(true, column);
- for (int i = 0; i < dtSupplier.Rows.Count; i++)
- {
- DataRow[] r = ds.Tables[0].Select("供應商='" + dtSupplier.Rows[i]["供應商"].ToString() + "'");
- //插父表
- for (int j = 0; j < r.Length; j++)
- {
- string ItemName = r[j]["零件名稱"].ToString();
- string scale = r[j]["型號"].ToString();
- string batch = r[j]["批量"].ToString();
- string downLine = r[j]["下線數"].ToString();
- string downPercent = r[j]["下線率"].ToString();
- string outReason = r[j]["不合格原因"].ToString();
- string reason = r[j]["考核原因"].ToString();
- string amt = r[j]["考核金額"].ToString();
- //插子表
- }
- //save
- }
- return true;
- }
【編輯推薦】
責任編輯:彭凡
來源:
博客園