一.语法格式
provider=Microsoft.ACE.OLEDB.12.0;
User ID=用户名;
Data Source=数据库完整路径及文件名;
Mode=模式;
Extended Properties="HDR=YES;IMEX=1";
二. 注解
2.1 关键字一览表
关键字 | 说明 |
---|---|
Provider | 指定OLE DB Provider for Microsoft Jet |
User ID | 指定用户名。如果未指定此关键字,则默认使用字符串“admin” |
Data Source | 指定数据库路径和文件名(例如:在:D:\示例.xlsx) |
Mode | 指定的模式 |
Extended Properties | 其中HDR默认值为YES。表示第一行为字段名,否则第一行将作为内容。 |
2.2 HDR
“HDR=YES;”:表示第一行是列名而不是数据;“HDR=NO;”则与之相反;
2.3 IMEX
IMEX 用来告诉驱动程序,使用excel文件的模式。其值有0、1、2三种,分别代表导出、导入、混合模式。
2.3.1 IMEX=1
它是表示将强制混合数据转换为文本。如果同一列中既有数字值,也有文本值会出现严重问题。
缺点:只有确保在本列前8行数据中至少有一个是文本的时候才起作用,如前8行为纯数字。这与Excel ISAM[3](即索引顺序存取方法)驱动程序有关。
【解决方法】:
可以通过修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的注册表值来更改采样行数。但要注意Excel自身的版本。
如果是 Excel 2010:则将TypeGuessRows修改为1,048,576行,IMEX设为1;
三. 简单应用
3.1 提取工作表某单元格区域的数据
SQL连接字符串:
SELECT 销售单,料号,订单数量
FROM [订单表$A1:G80]
WHERE 料号="f215405" AND 订单数量> 25000
在这里,[订单表$A1:G80]
就相当于一张表,只不过是存在于工作表的一个单元格区域中