sql sever讀取寫入Excel總結


主要用到openrowset,opendatasource系統函數,這兩個函數任意一個都能完成任務

用這種方法可以實現Excel和sqlserver表之間的相互導入導出。

如果使用openrowset報錯,可以參看這篇文章http://www.cnblogs.com/xiashengwang/p/3511808.html

openrowset的寫法

--3,鏈接Excel Microsoft Jet 4.0 OLE DB Provider
--讀Excel數據,注意Excel必須事先關閉
select * 
from
openrowset('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls', Sheet1$) 

--將數據寫入Excel2003文件
--注意:首先需要對Excel的Sheet1的第一行設置與檢索列相等的一些值,可以是任意值,
--但最好與列名相同;另外oledb可能對Excel沒有寫權限,需要對Excel表格的屬性--》安全中加一個everyone權限
insert  into   
OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls',Sheet1$)   
select *  from  dbo.DQuestionData 

opendatasource的寫法

select * 
from
opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;DATABASE=E:/Temp/myExcel20131212.xls')...Sheet1$

上面的代碼是鏈接Excel2003的,對於Excel2007的鏈接 ,由於oledb提供程序不同,所以鏈接方式會不同。

下面附一個不同的鏈接方式,也是從網上找到的。

--> Jet 引擎訪問 Excel 97-2003  
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', 'select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', [Sheet1$])  
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]  
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:/97-2003.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$]  
  
--> ACE 引擎訪問 Excel 97-2003  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', 'select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls', [Sheet1$])  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:/97-2003.xls;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]  
  
--> ACE 引擎訪問 Excel 2007  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx', 'select * from [Sheet1$]')  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx', [Sheet1$])  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx')...[Sheet1$]  
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:/2007.xlsx;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]  

 


免責聲明!

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



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