【问题标题】:Reading xlsx file in c# using OleDbConnection throws error使用 OleDbConnection 在 c# 中读取 xlsx 文件会引发错误
【发布时间】:2013-09-19 17:10:58
【问题描述】:

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

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位

环境详情

  1. Windows Server 2008(64 位)
  2. Visual Studio 2010(32 位)
  3. MS office 未安装

检查以下链接以解决问题

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

非常感谢任何帮助。

【问题讨论】:

    标签: c# excel oledb


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多