打开的Excel电子数据表中.NET在x64系统

问题描述:

使用下面的连接字符串打开的Excel电子数据表中.NET在x64系统

“提供者= Microsoft.Jet.OLEDB.4.0我不能打开Excel电子数据表与.NET在x64服务器上;数据源=“+ filePath +”;扩展属性= Excel 8.0;“

我得到'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。

我安装了2007 Office系统驱动程序:数据连接组件和与Microsoft.ACE.OLEDB.12.0与此连接字符串

试图“供应商= Microsoft.ACE.OLEDB.12.0;数据源=” +文件路径+“;扩展属性= Excel 8.0;”

并得到“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。“

我搜索了Google,唯一的答案是它是一个64位的问题,任何人有一个想法如何解决这个问题?

Excel 2003/2007 OleDB驱动程序只有32位。我的理解是,你只能在32位应用程序中使用它们。

将打开xls和xlsx工作簿,并在64位以及32位.NET 2.0+中进行测试和支持。

您可以下载评估here并查看实时ASP.NET样本(C#& VB)here

声明:我自己的SpreadsheetGear LLC

你的应用程序需要被设置为32位应用程序运行。这可以通过在Visual Studio配置管理器中将可执行项目的目标平台从AnyCPU更改为x86来完成。

如果要在更改解决方案配置之前测试它如何与您的应用程序配合使用,可以使用corflags.exe实用程序。这只会在您的应用程序名称不强或Authenticode已签名时才起作用,否则您将需要辞职。从Visual Studio命令提示符类型:

corflags.exe <path and exe file name> /32BIT+