2024年3月8日发(作者:)

有两种接口可供选择:.4.0(以下简称 Jet 引擎)和.12.0(以下简称 ACE 引擎)。

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

ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office

2007,也可以访问 Office 97-2003。

另外:.12.0 可以访问正在打开的 Excel 文件,而

.4.0 是不可以的。

语法举例:

--> Jet 引擎访问 Excel 97-2003

select * from OpenRowSet('.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:', 'select * from [Sheet1$]')

select * from OpenRowSet('.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:', [Sheet1$])

select * from OpenDataSource('.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:')...[Sheet1$]

select * from OpenDataSource('.4.0', 'Data Source=D:;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$]

--> ACE 引擎访问 Excel 97-2003

select * from OpenRowSet('.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:', 'select * from [Sheet1$]')

select * from OpenRowSet('.12.0', 'Excel 12.0;HDR=Yes;

IMEX=1;Database=D:', [Sheet1$])

select * from OpenDataSource('.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:')...[Sheet1$]

select * from OpenDataSource('.12.0', 'Data Source=D:;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]

--> ACE 引擎访问 Excel 2007

select * from OpenRowSet('.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:', 'select * from [Sheet1$]')

select * from OpenRowSet('.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:', [Sheet1$])

select * from OpenDataSource('.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:')...[Sheet1$]

select * from OpenDataSource('.12.0', 'Data Source=D:;Extended Properties="Excel

12.0;HDR=Yes;IMEX=1"')...[Sheet1$]

注:

Excel 2007 工作簿文件的扩展名是:xlsx

HDR=Yes/No

可选参数,指定 Excel 表的第一行是否列名,缺省为 Yes,可以在注册表中修改缺省的行为。

IMEX=1

可选参数,将 Excel 表中混合 Intermixed 数据类型的列强制解析为文本。