最近一直很忙,很久沒寫博客了。今天給大家講解一下如何用C#將Excel數據導入Excel,同時在文章最后附上如何用sqlserver和mysql工具導入數據。
導入過程大致分為兩步:
- 1.將excel數據導入到DataSet中;
- 2.將DataSet里面的數據遍歷插入到對應的數據庫
一、將excel數據導入到DataSet中
需添加引用using System.Data; using System.Data.OleDb;
public static DataSet ReadExcel(string filepath) { try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; OleDbConnection oleConn = new OleDbConnection(strConn); oleConn.Open(); string sql = "select * from [Sheet1$]"; OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleConn); DataSet oleDsExcel = new DataSet(); oleDaExcel.Fill(oleDsExcel, "table1"); oleConn.Close(); return oleDsExcel; } catch (Exception) { return null; throw; } }
二、將DataSet里面的數據遍歷插入到對應的數據庫
首先判斷excel時候存在,當然如果你已經知道文件的所在位置,這一步可以跳過。
string filename = @"C:\Users\Administrator\Desktop\禮品列表\禮品張曦合並版本(卡券創建完整信息).xlsx"; if (!System.IO.File.Exists(filename)) throw new Exception("指定路徑的Excel文件不存在!");
其次將DataSet里面的數據,讀取出來並包裝成數據插入語句。
DataSet ds = ReadExcel(filename); List<string> list = (from DataRow row in ds.Tables["table1"].Rows select String.Format("insert into test_1(id,card_id,card_type,標題,產品價格,單位,禮物數量,商場,禮物編號) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')", row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8])).ToList();
2.1 將DataSet里面的數據插入到mysql
插入我們使用ADO.NET來處理,首先得在擴展里添加引用 MySql.Data; 和 MySql.Data.MySqlClient;
string strConnect = ConfigurationManager.ConnectionStrings["MySqlConnString"].ToString();
//strConnect="server=127.0.0.1;user id=***;password=***;persistsecurityinfo=True;port=3306;database=test";
MySqlConnection conn = new MySqlConnection(strConnect);
conn.Open();
foreach (string item in list)
{
MySqlCommand comn = new MySqlCommand(item, conn);
comn.ExecuteNonQuery();
}
conn.Close();
2.2 將DataSet里面的數據插入到sqlserver
需添加引用 using System.Data; using System.Data.SqlClient;
string strConnect = ConfigurationManager.ConnectionStrings["SqlServerConnString"].ToString(); //或strConnect="Data Source=.;Initial Catalog=test;Persist Security Info=True;User ID=***;Password=***;MultipleActiveResultSets=true"; SqlConnection conn = new SqlConnection(strConnect); conn.Open(); foreach (string item in list) { SqlCommand comn = new SqlCommand(item, conn); comn.ExecuteNonQuery(); }
3.用工具導入Excel
我使用的是Toad for SQL Server 6.5 Freeware和Toad for MySQL 7.2 Freeware和SQL SERVER2008(這里僅以Toad for MySQL 7.2 Freeware為例)