用OleDb读取Excel工作表

我正在尝试通过Microsoft.Jet.OLEDB.4.0阅读Excel工作表。 我跟着一个教程,编写代码并部署它。 它工作正常,但现在很长一段时间后,我们改变了服务器,现在当我把旧的代码部署到新的服务器,它给了我一个错误“的Microsoft.Jet.OLEDB.4.0提供者没有注册在本地计算机“。

我真的不记得我上次做了什么。 我已经尝试了很多东西,但没有任何工作。

我不能使用任何其他的DLL,因为我们没有安装在服务器上的办公室。 任何人都可以请指导我。

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

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

如果这是不可能的,那么您应该下载64位版本的Microsoft Access数据库引擎2010 Redistributable并将其安装在目标服务器上。 还记得要更改您的连接string

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

从以下url下载并安装: http : //www.microsoft.com/en-us/download/details.aspx?id=13255