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

上传文件后,程序将使用以下可用驱动程序打开与excel文件的OleDB连接:

  • Microsoft.ACE.OLEDB.12.0用于最新的Excel文件格式 .

  • Microsoft.Jet.OLEDB.4.0用于较旧的Excel文件格式 .

我写这篇文章的那一刻是一个if代码块,用于检查要打开的Excel文件的mime类型,并选择正确的驱动程序来打开OleDb连接 . 但我不能同时支持这两种文件格式 .

如果我在 64bit-mode 执行我的ASP应用程序,我收到错误:

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

如果我在 32bit-mode 中执行我的ASP应用程序,我收到错误:

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

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

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