C#读Excel并存入数据库

开发 后端
本文将介绍C#读Excel并存入数据库。直接从Excel中读取出来,然后对"供应商" select distinct,然后分别对每个供应商做表.

直接让C#读Excel,然后对"供应商" select distinct,然后分别对每个供应商做表。这样C#读Excel并存入数据库就完成了。

  1.  protected void Page_Load(object sender, EventArgs e)  
  2.  {  
  3.      DataSet ds = ImportExcel(Server.MapPath("ExcelFile/供应商违约扣款.xls"));  //C#读Excel
  4.      GridView1.DataSource = ds.Tables["ExcelInfo"].DefaultView;  
  5.      GridView1.DataBind();  
  6.  
  7.      ToDataBase(ds);  
  8.  }  
  9.  
  10. private DataSet ImportExcel(string strFileName)  
  11. {  
  12.     if (strFileName == ""return null;  
  13.     string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +  
  14.          "Data Source=" + strFileName + ";" +  
  15.          "Extended Properties=Excel 8.0;HDR=Yes;IMEX=1";  
  16.     OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT trim(供应商) as 供应商,零件名称,型号,批量,下线数,下线率,不合格原因,考核原因,考核金额  FROM [Sheet1$]", strConn);  
  17.     DataSet ExcelDs = new DataSet();  
  18.     try 
  19.     {  
  20.         ExcelDA.Fill(ExcelDs, "ExcelInfo");  
  21.  
  22.     }  
  23.     catch (Exception err)  
  24.     {  
  25.         System.Console.WriteLine(err.ToString());  
  26.     }  
  27.     return ExcelDs;  
  28. }  
  29.  
  30.  
  31. private bool ToDataBase(DataSet ds)  
  32. {  
  33.     DataTable dtSupplier = new DataTable("dtSupplier");  
  34.  
  35.  
  36.     DataView dv = ds.Tables[0].DefaultView;  
  37.  
  38.     string[] column = { "供应商" };  
  39.     dtSupplier = dv.ToTable(true, column);  
  40.  
  41.     for (int i = 0; i < dtSupplier.Rows.Count; i++)  
  42.     {  
  43.  
  44.         DataRow[] r = ds.Tables[0].Select("供应商='" + dtSupplier.Rows[i]["供应商"].ToString() + "'");  
  45.  
  46.         //插父表  
  47.  
  48.         for (int j = 0; j < r.Length; j++)  
  49.         {  
  50.             string ItemName = r[j]["零件名称"].ToString();  
  51.             string scale = r[j]["型号"].ToString();  
  52.             string batch = r[j]["批量"].ToString();  
  53.            string downLine = r[j]["下线数"].ToString();  
  54.             string downPercent = r[j]["下线率"].ToString();  
  55.             string outReason = r[j]["不合格原因"].ToString();  
  56.             string reason = r[j]["考核原因"].ToString();  
  57.             string amt = r[j]["考核金额"].ToString();  
  58.  
  59.             //插子表  
  60.         }  
  61.  
  62.         //save  
  63.     }  
  64.     return true;  

【编辑推荐】

  1. C#数据库查询和操作大全
  2. 浅析C#扩展方法
  3. C# Singleton的使用及优缺点探讨
  4. 详细分析C#数据库连接池
  5. C#数据库备份及还原的实现代码
责任编辑:彭凡 来源: 博客园
相关推荐

2009-08-11 14:51:47

C#读取Excel中数

2009-08-11 13:35:13

C# Berkeley

2009-03-19 10:08:09

C#数据库查询

2010-10-26 15:21:11

连接Oracle数据库

2009-08-12 14:27:36

访问MySQL数据库C# ODBC

2009-08-25 12:50:32

数据库常用C#代码

2009-08-07 16:19:00

C#下数据库编程

2009-09-04 17:23:21

C#数据库连接对象

2009-07-31 17:01:21

C#存取Access数

2009-08-07 16:19:00

C#下数据库编程

2009-08-06 18:10:06

C#数据库事务

2009-08-17 17:42:57

C#数据库操作类

2009-08-25 14:05:06

C#连接数据库代码

2009-08-24 18:09:13

C#调用Oracle数

2009-09-04 17:53:23

C#增加数据库数据

2009-08-12 14:23:01

C#连接MySql数据

2009-08-28 15:16:32

C#实现对数据库访问

2011-03-17 15:59:37

c#数据库

2009-08-28 13:03:55

C#压缩Access数

2009-08-03 14:17:18

C#连接AccessC#连接SQL Ser
点赞
收藏

51CTO技术栈公众号