C#通用OleDb连接到Excel

我有一个ASP-MVC应用程序,允许用户上传一个Excel文件。 我支持* .xls文件(Excel 97-2003)和* .xlsx文件(Excel 2007+)。

一旦文件被上传,程序使用一个可用的驱动程序打开一个到excel文件的OleDB连接:

  • Microsoft.ACE.OLEDB.12.0为最新的Excel文件格式。
  • 用于较旧的Excel文件格式的Microsoft.Jet.OLEDB.4.0。

我写这篇文章的时候是一个if代码块,它检查要打开的Excel文件的MIMEtypes并select正确的驱动程序来打开OleDb连接。 但是我不能同时支持两种文件格式。

如果我在64位模式执行我的ASP应用程序,我得到的错误:

“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。

如果我在32位模式执行我的ASP应用程序,我得到的错误:

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

如果有能够连接到所有版本的Excel文件的通用Microsoft OleDb提供程序?

更新:我正在使用.NET Framework 4的Windows Server 2008 SP1的64位版本上运行