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 数据类型的列强制解析为文本。


发布评论