天天看點

使用OpenRowSet操作Excel

有兩種接口可供選擇:Microsoft.Jet.OLEDB.4.0(以下簡稱 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下簡稱 ACE 引擎)。

Jet 引擎大家都很熟悉,可以通路 Office 97-2003,但不能通路 Office 2007。

ACE 引擎是随 Office 2007 一起釋出的資料庫連接配接元件,既可以通路 Office 2007,也可以通路 Office 97-2003。

另外:Microsoft.ACE.OLEDB.12.0 可以通路正在打開的 Excel 檔案,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

文法舉例: 

--> Jet 引擎通路 Excel 97-2003   

  1. select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', 'select * from [Sheet1$]')   
  2. select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', [Sheet1$])   
  3. select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls')...[Sheet1$]   
  4. 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   

  1. select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', 'select * from [Sheet1$]')   
  2. select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', [Sheet1$])   
  3. select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls')...[Sheet1$]   
  4. 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   

  1. select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx', 'select * from [Sheet1$]')   
  2. select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx', [Sheet1$])   
  3. select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx')...[Sheet1$]   
  4. select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:\2007.xlsx;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]  

注:

Excel 2007 工作簿檔案的擴充名是:xlsx

HDR=Yes/No

可選參數,指定 Excel 表的第一行是否列名,預設為 Yes,可以在系統資料庫中修改預設的行為。

IMEX=1

可選參數,将 Excel 表中混合 Intermixed 資料類型的列強制解析為文本。

測試環境:Visual Studio.Net 2005,Ms Sql Server 2005,Execl 2003/2007.

轉載于:https://www.cnblogs.com/breezee/archive/2008/08/27/1277975.html