C#打开Excel文件的后缀名els与elsx的使用

来源:互联网 发布:声卡机架软件下载 编辑:程序博客网 时间:2024/06/14 00:21

打开扩展名为xlsx的时候报错,但是扩展名为xls的时候就可以正常使用

驱动Microsoft.ACE.OLEDB.12.0,能够成功的创建 xlsx 文件,但是用 Excel 打开的时候,会提示错误信息。

我们将驱动修改为:
constring  = "Provider=Microsoft.ACE.OLEDB.12.0;"
                          + "Data Source=" + txtFilePath.Text.Trim() + ";"
                          + "Extended Properties=Excel 12.0";

注意
修改的地方"Extended Properties=Excel 12.0;
与以前的  Extended Properties=Excel 8.0;

当扩展名为xlsx的时候必须使用Extended Properties=Excel 12.0驱动的写法。当扩展名为xls的时候使用哪个都可以


Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Excel数据源对应的连接串,这个连接串中包括了Provider信息(其实类似对数据库进行连接操作时,都需要指定连接字符串),以下是一行连接串源代码:

strConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strExcelFilePath & ";Extended Properties=Excel 12.0"

这里的Provider使用了Microsoft.ACE.OLEDB.12.0,其实除了Microsoft.ACE.OLEDB.12.0,还有Microsoft.Jet.OLEDB.4.0,它们俩者之间有什么联系和区别呢:

 

共同点:都是做为连接Excel对象的接口引擎

不同点:

1、对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。

2、Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。

3、ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。

另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而Microsoft.Jet.OLEDB.4.0 是不可以的。

所以,在使用不同版本的office时,要注意使用合适的引擎。



0 0
原创粉丝点击