我无法使用以下连接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文件并读取或更改内容。
这不使用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 。