我无法使用以下连接字符串
在x64服务器上打开带有.NET的Excel电子表格“Provider = Microsoft.Jet.OLEDB.4.0; Data Source =”+ filePath +“;扩展属性= Excel 8.0;”
我得到'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。
我安装了2007 Office System驱动程序:数据连接组件,并尝试使用Microsoft.ACE.OLEDB.12.0和此连接字符串
“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =”+ filePath +“;扩展属性= Excel 8.0;”
并得到“'Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册。”
我搜索谷歌的唯一回应是它是64位问题,任何人都有一个想法如何解决这个问题?
答案 0 :(得分:3)
您的应用程序需要设置为32位应用程序运行。这可以通过在Visual Studio Configuration Manager中将可执行项目的目标平台从AnyCPU更改为x86来实现。
如果要在更改解决方案配置之前测试它如何与您的应用程序一起使用,可以使用corflags.exe实用程序。这仅在您的应用程序名称不强或Authenticode签名时才有效,否则您将需要重新签名。从Visual Studio命令提示符类型:
corflags.exe <path and exe file name> /32BIT+
答案 1 :(得分:2)
Excel 2003/2007 OleDB驱动程序仅为32位。我的理解是你只能在32位应用程序中使用它们。
SpreadsheetGear for .NET将打开xls和xlsx工作簿,并在64位和32位.NET 2.0 +中进行测试和支持。
您可以下载评估here并查看实时ASP.NET示例(C#和VB)here。
免责声明:我拥有SpreadsheetGear LLC