C#讀取Excel及顯示和存儲(chǔ)的實(shí)現(xiàn)
作者:佚名
通過(guò)下面的代碼可以實(shí)現(xiàn)C#讀取Excel顯示出來(lái)效果,并在數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ)。
直接C#讀取Excel,然后對(duì)"供應(yīng)商" select distinct,然后分別對(duì)每個(gè)供應(yīng)商做表.
C#讀取Excel的代碼如下:
- 2 protected void Page_Load(object
- sender, EventArgs e)
- 3 {
- 4 DataSet ds = ImportExcel
- (Server.MapPath("ExcelFile/供應(yīng)商違約扣款.xls"));
- 5 GridView1.DataSource =
- ds.Tables["ExcelInfo"].DefaultView;
- 6 GridView1.DataBind();
- 7
- 8 ToDataBase(ds);
- 9 } //完成C#讀取Excel
- 10
- 11 private DataSet ImportExcel
- (string strFileName)
- 12 {
- 13 if (strFileName == "") return null;
- 14 string strConn = "Provider=
- Microsoft.Jet.OLEDB.4.0;" +
- 15 "Data Source=" + strFileName + ";" +
- 16 "Extended Properties=Excel
- 8.0;HDR=Yes;IMEX=1";
- 17 OleDbDataAdapter ExcelDA =
- new OleDbDataAdapter("SELECT trim(供應(yīng)商)
- as 供應(yīng)商,零件名稱,型號(hào),批量,下線數(shù),下線率,
- 不合格原因,考核原因,考核金額 FROM [Sheet1$]",
- strConn);
- 18 DataSet ExcelDs = new DataSet();
- 19 try
- 20 {
- 21 ExcelDA.Fill(ExcelDs, "ExcelInfo");
- 22
- 23 }
- 24 catch (Exception err)
- 25 {
- 26 System.Console.WriteLine
- (err.ToString());
- 27 }
- 28 return ExcelDs;
- 29 }
- 30
- 31
- 32 private bool ToDataBase(DataSet ds)
- 33 {
- 34 DataTable dtSupplier = new DataTable
- ("dtSupplier");
- 35
- 36
- 37 DataView dv = ds.Tables[0].DefaultView;
- 38
- 39 string[] column = { "供應(yīng)商" };
- 40 dtSupplier = dv.ToTable(true, column);
- 41
- 42 for (int i = 0; i 〈 dtSupplier.Rows.
- Count; i++)
- 43 {
- 44
- 45 DataRow[] r = ds.Tables[0].Select
- ("供應(yīng)商='" + dtSupplier.Rows[i]["供應(yīng)商"].
- ToString() + "'");
- 46
- 47 //插父表
- 48
- 49 for (int j = 0; j 〈 r.Length; j++)
- 50 {
- 51 string ItemName = r[j]["零件名稱"].ToString();
- 52 string scale = r[j]["型號(hào)"].ToString();
- 53 string batch = r[j]["批量"].ToString();
- 54 string downLine = r[j]["下線數(shù)"].ToString();
- 55 string downPercent = r[j]["下線率"].ToString();
- 56 string outReason = r[j]["不合格原因"].ToString();
- 57 string reason = r[j]["考核原因"].ToString();
- 58 string amt = r[j]["考核金額"].ToString();
- 59
- 60 //插子表
- 61 }
- 62
- 63 //save
- 64 }
- 65 return true;
- 66 }
【編輯推薦】
責(zé)任編輯:冰荷
來(lái)源:
souzz