使用OleDb读取Excel工作表

时间:2013-08-08 21:48:08

标签: c# excel oledb

我正在尝试通过Microsoft.Jet.OLEDB.4.0阅读excel表。我按照教程编写代码并进行部署。它工作正常,但现在很长一段时间后我们更改了服务器,现在当我将旧代码部署到新服务器时,它给我一个错误“'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。“

我真的不记得上次我做了什么让它运行。我尝试了很多东西,但没有任何效果。

我无法使用任何其他dll,因为我们没有在服务器上安装办公室。任何人都可以指导我。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

'Microsoft.Jet.OLEDB.4.0'是32位驱动程序。如果使用AnyCPU作为平台目标编译应用程序并在64位操作系统上部署应用程序,则代码将以64位代码执行。在这种情况下,您无法引用像OleDb.4.0这样的32位驱动程序。

您最好的选择是将x86的应用程序重新编译为目标平台,然后您的应用程序将作为32位代码运行,在64位系统上运行时没有问题,您将能够使用32位OleDb.4.0。

如果无法做到这一点,那么您应该下载64位版本的Microsoft Access Database Engine 2010 Redistributable并将其安装在目标服务器上。还记得将连接字符串更改为

 string conString = "Provider=Microsoft.ACE.OLEDB.12.0;" + 
                    "Data Source=path_to_your_excel_file.xls;" + 
                    "Extended Properties=\"Excel 8.0;HDR=YES\"";