C# 用OleDb读取Excel表格

C# 用OleDb读取Excel表格,c#,excel,oledb,C#,Excel,Oledb,我试图通过Microsoft.Jet.OLEDB.4.0阅读excel表格。我按照教程编写代码并部署了它。它工作正常,但经过很长一段时间后,我们更改了服务器,现在当我将旧代码部署到新服务器时,出现了一个错误“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。” 我真的不记得上次我做了什么使它运行。我试过很多东西,但都不管用 我不能使用任何其他dll,因为服务器上没有安装office。任何人都可以指导我。从以下位置下载并安装它:Microsoft.Jet.OLEDB.4

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

我真的不记得上次我做了什么使它运行。我试过很多东西,但都不管用


我不能使用任何其他dll,因为服务器上没有安装office。任何人都可以指导我。

从以下位置下载并安装它:

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

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

如果不可能,则应下载64位版本的,并将其安装在目标服务器上。还记得将连接字符串更改为

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

Steve感谢您的回复,我刚刚安装了Microsoft Access数据库引擎2010可再发行版。当我再次运行web时,我遇到了一个错误“找不到可安装的ISAM”。问题是我无法编译该应用程序,因为我只托管了源代码文件,没有DLL。扩展属性周围的引号加倍?现在刚刚添加了另一条新消息:)为了更好地理解“初始化字符串的格式不符合从索引119开始的规范”,这里是我的代码字符串olaConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+newFilePath+”;扩展属性\“Excel 8.0;HDR=Yes;IMEX=2\”;