使用C#使用Oledbconnection导入Excel的exception

有一个关于这个问题的讨论当查询Excel 2010时诊断一个OLEDBexception

但是我的问题是,如果我们不允许在托pipe网站的IIS服务器上安装ACE组件, 我们如何避免这个错误? 有什么其他的方式来导入excel到SQL数据库?

我正在使用下面的连接string,并且在本地工作完全正常,但在部署之后不在IIS服务器中。

excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"HDR=YES;\";Jet OLEDB:Engine Type=37"; 

错误 :System.InvalidOperationException:“Microsoft.Jet.OLEDB.12.0”提供程序未在本地计算机上注册。

这是因为您正在将应用程序编译为X64位,请使用以下设置强制它以32位(x86)运行:

 ->Right click on Project ->Select Properties ->Goto Build Options ->Change "Platform Target" from "ANY CPU" to "X86" 

我build议你看看http://linqtocsv.codeplex.com/

使用这种方法,您可以将您的Excel文件读入C#对象,validation它们,然后将它们提交给SQL数据库。

上面的问题是一个棘手的问题,我以前遇到过这个问题,通常意味着您需要安装某个特定版本的Microsoft Office实例。

我们有一些用户在Office 2003上运行,他们无法使用我们的系统,因为他们需要在那里的机器上的更高版本的Microsoft Jet引擎。