导入Excel 2013到vs, Microsoft ACE.OLEDB.12.0未在本地机器上注册

本文关键字:注册 机器 OLEDB 2013 Excel vs ACE Microsoft 导入 | 更新日期: 2023-09-27 18:14:00

在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,但没有运气,任何建议。

导入Excel 2013到vs, Microsoft ACE.OLEDB.12.0未在本地机器上注册

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文件

string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties=Excel 12.0 Xml;HDR=YES;数据源= C: ' '用户问'桌面' Ug ' Test.xlsx";

正如这里所说,您可能安装了64位的office,但没有安装32位组件(这里提供了链接)。您可能还必须在x86平台上构建您的项目。