Connection strings for Excel 2007

一、Xlsx files:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

  "HDR=yes;"是说第一行是列名而不是数据。"HDR=No;"正好与前面的相反。

 

把数据当做文本对待,使用这条连接当你想把所有的数据都当做文本对待时,覆盖Excel通常的猜测这列的数据类型。
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

   如果你想把列名也读到结果集中(使用“HDR=NO”尽管第一行是列名)并且列中的数据是数值型的,使用“IMEX=1”可必免冲突。

 使用"IMEX=1"检索混合数据列是一种安全的方法。试想一下,当Driver检索出数据列中有一种数据类型的excel文件可以正常工作,而另一个excel文件(某列)被检测出两种类型,这会造成你的程序的冲突。
 
二、Xlsb文件
这是用来连接带Xlsb扩展名的Excel 2007文件。这是一种保存为二进制的Office Open XML格式。 不像Xlsx文件那种可读的文件格式。此种格式在数据量大时可以提升性能
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myBinaryExcel2007file.xlsb;Extended Properties="Excel 12.0;HDR=YES";

"HDR=yes;"是说第一行是列名而不是数据。"HDR=No;"正好与前面的相反,可以使用这个串连接97-2003 Excel

 

三、Xlsm 文件

这是用来连接带Xlsm扩展名的Excel 2007文件。这是带宏的Office Open XML格式。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm;Extended Properties="Excel 12.0 Macro;HDR=YES";

 注意:字符串中的引号"要用你的程序的语言的转义语法转义一下。 在C#,C++中为 \" ,   VB,VBScript为 ""   XML(Web.config etc)   " , 或者可以使用单引号。

 

posted @ 2010-09-28 17:34  闭着眼睛想  阅读(369)  评论(0)    收藏  举报