從EXCEL導入數據到SQL Server數據庫的方法


介紹兩種途徑將數據從EXCEL中導入到SQL SERVER。

 

一、在程序中,用ADO.NET。代碼如下:

 

//連接串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + [EXCEL文件,含路徑] + ";";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
         
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});
DataSet ds = new DataSet();
//一個EXCEL文件可能有多個工作表,遍歷之
foreach( DataRow dr in dtSchema.Rows )
{
   string table = dr["TABLE_NAME"].ToString();
   string strExcel = "SELECT * FROM [" + table + "]";
   ds.Tables.Add(table);
 
   OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn);
   myCommand.Fill(ds,table);
}
 
conn.Close();

 

這樣,讀取出來的數據就藏在DataSet里了。

采用這種方式,數據庫所在機器不必裝有EXCEL。

 

二、在查詢分析器里,直接寫SQL語句:

如果是導入數據到現有表,則采用

INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式

如果是導入數據並新增表,則采用

SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式。

 

以上語句是將EXCEL文件里SHEET1工作表中所有的列都讀進來,如果只想導部分列,可以

INSERT INTO 表(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

其實可以將

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

當成一個表。

 

不管是哪種方式,哪種途徑,系統都會默認將第一行上的內容作為字段名。

 

本文由職坐標整理並發布,以上就是EXCEL導入數據到SQL Server數據庫的方法介紹,操作很簡單的,大家按照上面步驟進行操作即可,希望能對大家有所幫助!

轉載自:http://sql.zhizuobiao.com/sql-18050900045/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM