使用OleDbConnection在c#中读取xlsx文件会引发错误

时间:2013-09-03 13:31:09

标签: c# excel oledb

我编写了一个控制台应用程序来使用xlsx在C#中读取OleDbConnection文件。它抛出以下错误

  

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

以下是我写的代码

string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Suganya\ColumnReport.xlsx;Extended Properties=Excel 12.0;";
OleDbConnection objConn = new OleDbConnection();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
objConn = new OleDbConnection(connString);

string Query = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmd = new OleDbCommand(Query, objConn);

DataTable Table = new DataTable();
dataAdapter.SelectCommand = objCmd;
dataAdapter.Fill(Table);

我已经执行了以下操作来解决问题。

  1. 我已安装AccessDatabaseEngine.exe(32位)并发现以下路径中存在ACEOLEDB.dll C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14

  2. 尝试引用应用程序中的ACEOLEDB.dll。但它给了我以下错误

      

    无法添加对'ACEOLEDB.DLL'的引用。请确保该文件是可访问的,并且它是有效的程序集或COM组件

  3. 控制台应用程序的配置平台为32位

  4. 环境详情

    1. Windows Server 2008(64位)
    2. Visual Studio 2010(32位)
    3. 未安装MS office
    4. 检查以下链接以解决问题

      1。http://www.codeproject.com/Questions/486549/Theplus-27Microsoft-ACE-Oledb-12-0-27plusproviderp 2。http://www.codeproject.com/Questions/337953/The-Microsoft-ACE-OLEDB-12-0-provider-is-not-regis

      非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您必须安装Microsoft Office; Office安装过程将在GAC中复制并注册所需的程序集('ACEOLEDB.DLL'),或者您可以在bin(应用程序)目录中添加缺少的程序集或由您自己注册它们。