我无法使用以下连接字符串在 x64 服务器上使用 .NET 打开 Excel 电子表格
“提供者=Microsoft.Jet.OLEDB.4.0;数据源=”+文件路径+“;扩展属性=Excel 8.0;”
我得到 'Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册。
我安装了 2007 Office System Driver: Data Connectivity Components 并尝试使用 Microsoft.ACE.OLEDB.12.0 和此连接字符串
“提供者=Microsoft.ACE.OLEDB.12.0;数据源=”+文件路径+“;扩展属性=Excel 8.0;”
并得到“'Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册。”
我搜索了谷歌,唯一的回应是这是一个 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 上询问)
你不能,司机不在那里。我发现的唯一解决方法是,如果可以的话,将其保存为 csv 并以这种方式阅读。
所有 Office 驱动程序都是 32 位的,因此您不能使用 x64 应用程序中的 Office 文件;当 x64 系统上的 ASP.NET 应用程序尝试打开 Acess 数据库时,最常遇到此问题。
您需要强制您的应用程序以 x86 模式运行;它是 Windows 应用程序还是 ASP.NET 应用程序?在 ASP.NET 中,您可以按照此处所述进行操作。
我没有尝试过,但显然/passive 安装开关可能是64bit Ace的解决方法。