查询EXCEL数据
select * from [Sheet1$] where ...
连接字符串:
- //Excel 2007
- string conn= "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + fullpath+ ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
- (数据连接组件安装: http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe)
- //Excel 2003
- string conn= "Provider=Microsoft.Jet.OleDb.4.0;data source=" + fullpath+ ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
其中
HDR = Yes 说明第一行数据将作为 标题(可以作为where的字段名来查询) ,
反之 No 第一行将作为 数据 (这时where的字段名用 F1,F2,F3...来代替);
Yes 是默认值;
============================================================================
IMEX =1 说明所有单元格的数据类型作为文本类型来处理(会受HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
的 TypeGuessRows 值(代表要确定的行数)的影响(可以修改为0),
它必须确定前面多少行的单元格至少要有一个是文本类型的,这样才会全部作为文本类型来处理,如果全是数字,则之后行的文本数据将会被自动设置为null);
如果不用文本类型来处理,在使用WHERE时将会影响,如: 是使用 字段名='3' 还是使用 字段名=3 ;