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

在VS 2012中创build一个表单应用程序。我有Office 2013安装,赢得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(); } 

我尝试使用喷气机驱动程序,但不会工作,所以我转向王牌。 首先我得到“无法find可安装的ISAM”; 所以安装AccessDatabaseEngine_x64这导致我这个错误。 然后,我改变了我的构build到x86和相同的错误。 所以我没有select。 我曾尝试从2007年和2010年以前的AccessDatabaseEngine版本,但没有运气,任何build议。

 database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Users\\test.xls';Extended Properties= \"Excel 8.0;HDR=Yes;IMEX=1\";"); 

上面的连接string使用jet虽然我必须暂时离开excel文件,因为我得到“无法解密文件”的错误,否则。 我也不得不将该文件保存为97-03 excel xls文件。

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”;

如这里所说,可能你已经安装了64位的办公室,没有安装32位元件(在那里提供了连接)。 您可能还需要在x86平台上使用您的项目目标。