在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位的问题,任何人有一个想法如何解决这个问题?

您可以使用Open XML SDK打开Excel 2007文件并读取或更改内容。

http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&DisplayLang=en

这不使用Excel程序,而是将其作为xml文档打开。 因此你解决了64位的问题。

但是,它可能需要对您的程序进行重大更改。

你只能从32位版本的框架做到这一点。 如果它是一个ASP.net应用程序,你可以改变服务器在32位框架下运行。 如果它是一个本地应用程序,你将不得不重新编译(虽然这可能是最好的问题在stackoverflow)

你不能,司机不在那里。 只有我find的解决办法是,如果可以的话,将其保存为csv并以此方式读取。

所有Office驱动程序只有32位,所以您不能使用x64应用程序中的Office文件; 当x64系统上的ASP.NET应用程序尝试打开Acess数据库时,通常会遇到问题。

您需要强制您的应用程序以x86模式运行; 它是一个Windows应用程序或ASP.NET的? 在ASP.NET中,您可以按照此处所述的方式进行操作 。

我还没有尝试过,但显然 /被动安装开关可能是一个解决64位Ace 。