使用OpenRowSet操作Excel

2021-07-05 12:40:54 字數 2353 閱讀 5370

有兩種介面可供選擇: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 

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$] 

注:excel 2007 工作簿檔案的副檔名是:xlsx

hdr=yes/no

可選引數,指定 excel 表的第一行是否列名,預設為 yes,可以在登錄檔中修改預設的行為

。imex=1

可選引數,將 excel 表中混合 intermixed 資料型別的列強制解析為文字。

測試環境:visual studio.net 2005,ms sql server 2005,execl 2003/2007. 

本文**:

使用OpenRowSet操作Excel

有兩種介面可供選擇 microsoft.jet.oledb.4.0 以下簡稱 jet 引擎 和microsoft.ace.oledb.12.0 以下簡稱 ace 引擎 jet 引擎大家都很熟悉,可以訪問 office 97 2003,但不能訪問 office 2007。ace 引擎是隨 office...

使用OpenRowSet操作Excel

有兩種介面可供選擇 microsoft.jet.oledb.4.0 以下簡稱 jet 引擎 和microsoft.ace.oledb.12.0 以下簡稱 ace 引擎 jet 引擎大家都很熟悉,可以訪問 office 97 2003,但不能訪問 office 2007。ace 引擎是隨 office...

通過使用openrowset來讀取excel

通過使用openrowset來讀取excel 開啟許可權 exec sp configure show advanced options 1 reconfigure exec sp configure ad hoc distributed queries 1 reconfigure 查詢excel資...