C#导入Excel2007数据的连接驱动

xlsx文件:
    这是用来连接带Xlsx扩展名的Excel 2007文件。这是不带宏的Office Open XML格式。以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0Xml;HDR=Yes";

"HDR=Yes"是说第一行是列名而不是数据,"HDR=No"正好与前面的相反,系统默认的是Yes。

 

把数据当做文本对待:

使用这条连接当你想把所有的数据都当做文本对待时,覆盖Excel通常得猜测这列的数据类型。

以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0Xml;HDR=YES;IMEX=1";

如果你想把列名也读到结果集中(使用“HDR=No”尽管第一行是列名)并且列中的数据是数值型的,使用“IMEX=1”可必免冲突。使用"IMEX=1"检索混合数据列是一种安全的方法。试想一下,当Driver检索出数据列中有一种数据类型的Excel文件可以正常工作,而另一个Excel文件(某列)被检测出两种类型,这会造成你的程序的冲突。

 

xlsb文件:

这是用来连接带xlsb扩展名的Excel 2007文件。这是一种保存为二进制的Office OpenXML格式。不像xlsx文件那种可读的文件格式。此种格式在数据量大时可以提升性能。以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:\myFolder\myBinaryExcel2007file.xlsb;Extended Properties="Excel12.0;HDR=YES";

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

 

xlsm文件:

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

以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm;ExtendedProperties="Excel 12.0 Macro;HDR=YES";

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

 

最后,在导入Excel的时候如果出现“找不到可安装的ISAM”的提示,就得重新注册一下ExcelISAM,具体解决步骤如下:

在“运行”对话框中输入以下内容:Regsvr32 c:\WINDOWS\system32\msexcl40.dll  然后回车确定,在导入的时候就不会出现"找不到可安装的ISAM"这样子的提示了。

对照英文  http://www.connectionstrings.com/excel-2007/

你可能感兴趣的:(C#)