导入Excel 2013到vs,本机没有注册微软ACE.OLEDB.12.0

Posted

技术标签:

【中文标题】导入Excel 2013到vs,本机没有注册微软ACE.OLEDB.12.0【英文标题】:Import Excel 2013 to vs, Microsoft ACE.OLEDB.12.0 is not registered on the local Machine 【发布时间】:2013-05-17 14:00:23 【问题描述】:

在 vs 2012 中创建表单应用程序。我安装了 office 2013,win 8 64 位。我收到以下代码的上述错误。

public void SetConnection(string text1, string text2, string text3, string text4, string text5, string text6, string text7)
    
        connectionString1 = "Initial Catalog=test; Data Source=work\\sqlexpress";
        connectionString = "Data Source='c:\\Users\\test1.xlsx';Extended Properties=Excel 12.0 Xml;Readonly=False;";
        database = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + connectionString);
        database.Open();
        database1 = new OleDbConnection("Provider=SQLOLEDB.1;" + connectionString1);
        database1.Open();
    

我尝试使用喷气式驱动程序,但无法正常工作,所以我求助于 ace。首先我得到“找不到可安装的 ISAM”;所以安装了 AccessDatabaseEngine_x64 导致我出现这个错误。然后我将我的构建更改为 x86 和同样的错误。所以我别无选择。我确实在 2007 年和 2010 年尝试过以前版本的 AccessDatabaseEngine,但没有运气,有什么建议。

【问题讨论】:

在有问题的机器上检查 GAC 中 Ace OleDB 12.0 的先前版本怎么样?当您将构建更改为 x86 时,您是否知道机器是否安装了 Microsoft Office 版本或相关的 .DLL真的吗? 不,我还没有检查过 GAC,我不熟悉它,所以现在研究一下。不确定您所说的“已安装版本”是什么意思。我的控件显示office 2013 pro。我也会看看选择本地副本为真,从来没有这样做过,所以我必须研究它。 我的意思是,例如,如果您的笔记本电脑或台式机上有 Office 2010,当您安装它时,某些 .dll 会被安装,对于远程服务器也是如此,最常见的是dll 是 GAC 的...例如签名的 dll 或自定义的第 3 方 .dll 等... C:\Program files\common Files\microsoft shared\office14\aceoledb.dll 存在。 x86 程序文件中没有任何内容。 您需要了解并了解如何使用 GAC 【参考方案1】:
database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Users\\test.xls';Extended Properties= \"Excel 8.0;HDR=Yes;IMEX=1\";");

上面的连接字符串使用 jet 虽然我必须暂时打开 excel 文件,否则我会收到“无法解密文件”错误。我还必须将文件另存为 97-03 excel xls 文件。

【讨论】:

【参考方案2】:

string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties=Excel 12.0 Xml;HDR=YES;Data Source=C:\Users\q\Desktop\Ug\Test.xlsx";

【讨论】:

请在您的回答中提供一些文字,以便其他人更好地理解您的解决方案。 这个连接字符串抛出Could not find installable ISAM.异常!【参考方案3】:

正如here 所说,您可能安装了 64 位办公室,但没有安装 32 位组件(那里提供了链接)。您可能还需要构建您的项目 targetint x86 平台。

【讨论】:

以上是关于导入Excel 2013到vs,本机没有注册微软ACE.OLEDB.12.0的主要内容,如果未能解决你的问题,请参考以下文章

vc导入导出数据到excel表

ArcGIS操作Excel文件没有注册类解决办法

如何把EXCEL中的数导入到WORD的表格中?

为啥我输入的vs2012密钥会无效呢?

用C#将一个EXCEL导入到DATASET中,但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样

vs2019 30天到了怎么办?