在x64系统上的.NET中打开Excel电子表格

我无法使用以下连接string在x64服务器上使用.NET打开Excel电子表格

“Provider = Microsoft.Jet.OLEDB.4.0; Data Source =”+ filePath +“;扩展属性= Excel 8.0;”

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

我安装了2007 Office System Driver:Data Connectivity Components,并尝试使用Microsoft.ACE.OLEDB.12.0和此连接string

“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =”+ filePath +“;扩展属性= Excel 8.0;”

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

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

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

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

您可以在这里下载评估,并在这里看到现场ASP.NET示例(C#和VB)。

免责声明:我自己的SpreadsheetGear LLC

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

如果您想在更改您的解决schemeconfiguration之前testing这将如何与您的应用程序一起工作,则可以使用corflags.exe实用程序。 这只会提供你的应用程序没有强名字或Authenticode签名,否则你将需要辞职。 从Visual Studio命令提示符下键入:

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