尝试读取Excel XLSB

时间:2015-09-23 09:49:51

标签: excel model-view-controller oledbconnection

我使用Visual Studio 2013和MVC 3 Razor。我能够上传和保存XLSB文件,并且我试图从上传的XLSB中读取数据。我有以下连接字符串和方法来初始化OleDbConnection:

strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 8.0;HDR=True'";
OleDbConnection connExcel = new OleDbConnection(strConStr);

connExcel.Open()发生错误。以下是错误消息:

  

类型' System.Data.OleDb.OleDbException'的例外情况发生在System.Data.dll中但未在用户代码中处理

     

其他信息:此文件是在以前的Excel 2007测试版中创建的。使用Excel 2007打开该文件,以便在Access 2007中打开文件之前将其保存为最新版本的Excel 2007文件格式。

我的PC上安装了AccessDatabaseEngine。在我的控制面板中,我有以下已安装的引擎信息:

  

名称:Microsoft Office Access数据库引擎2007(英文)   ,大小:19.2 MB   ,版本:12.0.4518.1031

我不确定这是否是读取XLSB文件的正确版本。顺便说一句,我的电脑是x64位。

我的同事也在他的PC上安装了相同类型的Microsoft Office Access数据库引擎2007,但他的版本是" 12.0.66XX",代码在他身边正常工作。

如果我需要安装其他版本的Access数据库引擎或其他任何方法来解决此错误,请与我们联系。

1 个答案:

答案 0 :(得分:0)

经过长时间的研究和研究,我能够解决这个问题。

除了我的计算机中已安装的Microsoft Office Access数据库引擎2007之外,我还下载并安装了Microsoft Access Database Engine 2010 Redistributable

之后,我需要下载Microsoft Office Access Runtime and Data Connectivity 2007 Service Pack 2 (SP2)进行安装,然后重新启动我的计算机。

事后,一切都像魔术一样。

这是我的工作连接字符串:

strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 12.0;HDR=True'";