C#:c#读取Excel并显示出来,然后存入数据库.

 

直接从Excel中读取出来,然后对"供应商" select distinct,然后分别对每个供应商做表.

代码如下:


 1
 2    protected void Page_Load(object sender, EventArgs e)
 3    {
 4        DataSet ds = ImportExcel(Server.MapPath("ExcelFile/供应商违约扣款.xls"));
 5        GridView1.DataSource = ds.Tables["ExcelInfo"].DefaultView;
 6        GridView1.DataBind();
 7
 8        ToDataBase(ds);
 9    }

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;";
17        OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT trim(供应商) as 供应商,零件名称,型号,批量,下线数,下线率,不合格原因,考核原因,考核金额  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 = "供应商" };
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("供应商='" + dtSupplier.Rows[i]["供应商"].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]["型号"].ToString();
53                string batch = r[j]["批量"].ToString();
54                string downLine = r[j]["下线数"].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    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C# 读取 Excel存入 MySQL 数据库的示例代码: ```csharp using System; using System.Data; using System.Data.OleDb; using MySql.Data.MySqlClient; namespace ExcelToMysql { class Program { static void Main(string[] args) { string filePath = "C:\\data.xlsx"; // Excel 文件路径 string sheetName = "Sheet1"; // Excel 表格名称 string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'"; // Excel 连接字符串 string mysqlConnectionString = "Server=localhost;Database=test;Uid=root;Pwd=123456;"; // MySQL 连接字符串 // 读取 Excel 数据 using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", conn); DataSet ds = new DataSet(); adapter.Fill(ds); conn.Close(); // 将 Excel 数据存入 MySQL 数据库 using (MySqlConnection mysqlConn = new MySqlConnection(mysqlConnectionString)) { mysqlConn.Open(); foreach (DataRow row in ds.Tables[0].Rows) { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = mysqlConn; cmd.CommandText = "INSERT INTO table_name (column1, column2, column3) VALUES (@value1, @value2, @value3)"; cmd.Parameters.AddWithValue("@value1", row[0]); cmd.Parameters.AddWithValue("@value2", row[1]); cmd.Parameters.AddWithValue("@value3", row[2]); cmd.ExecuteNonQuery(); } mysqlConn.Close(); } } } } } ``` 需要注意的是,读取 Excel 数据需要安装 Microsoft.ACE.OLEDB.12.0 数据库驱动程序,可以在 Microsoft 官网下载安装。同时,代码中的连接字符串、Excel 文件路径、表格名称、表格列名、MySQL 数据库表名和列名需要根据实际情况进修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值