![在 x64 系统上使用 .NET 打开 Excel 电子表格](https://linux22.com/image/486837/%E5%9C%A8%20x64%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E4%BD%BF%E7%94%A8%20.NET%20%E6%89%93%E5%BC%80%20Excel%20%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC.png)
我无法使用以下连接字符串在 x64 服务器上使用 .NET 打开 Excel 电子表格
“提供程序=Microsoft.Jet.OLEDB.4.0;数据源=“+filePath+”;扩展属性=Excel 8.0;”
我得到的是“Microsoft.Jet.OLEDB.4.0”提供程序未在本地机器上注册。
我安装了 2007 Office System 驱动程序:数据连接组件,并尝试使用 Microsoft.ACE.OLEDB.12.0 和此连接字符串
“提供程序=Microsoft.ACE.OLEDB.12.0;数据源=“+filePath+”;扩展属性=Excel 8.0;”
并得到“‘Microsoft.ACE.OLEDB.12.0’提供程序未在本地机器上注册。”
我在 Google 上搜索,唯一的答案是这是一个 64 位问题,有人知道如何解决这个问题吗?
答案1
您可以使用 Open XML SDK 打开 Excel 2007 文件并读取或更改其内容。
这不使用 Excel 程序,而是将其作为 xml 文档打开。这样就解决了 64 位问题。
但它可能需要对您的程序进行重大修改。
答案2
您只能从 32 位版本的框架执行此操作。如果是 ASP.net 应用程序,您可以更改服务器以在 32 位框架下运行它。如果是本机应用程序,则必须重新编译(尽管最好在 stackoverflow 上询问)
答案3
你不能,驱动程序不在那里。我发现的唯一解决方法是,如果可以的话,将其保存为 csv 并以此方式读取。