10

I'm trying to read Excel spreadsheets with a 64bit Process. Therefore I use the 64 bit Version of Micorosft Access Database Engine 2010.

The following code

var cs = @"Provider=Microsoft.ACE.OLEDB.12.0;"
         + @"Data Source=C:\test.xls;"
         + @"Extended Properties=""Excel 14.0;""");

con = new OleDbConnection(cs);
con.Open();

throw an Exception:

Could not find installable ISAM

Using google I found a lot of questions about this exception. But they refer to JET and seem not apply to my problem.

Any recommendations?

4

5 回答 5

2

本文”的链接是正确的,但是将单引号更改为双引号。我正在使用 OpenFileDialog 来获取任何 excel 文件。(我正在使用 Excel 2013 进行测试)

=> 帖子中的原始格式 <=
//较新版本,任意xls文件 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\AlmostAnyExcelVersionFileRunningUnder64BitOS.xls';Extended Properties='Excel 12.0;HDR=NO ;IMEX=1;';"

=> 更正格式 <=
XLConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Chr(34) & ExceilFileDialog.FileName & Chr(34) & ";Extended Properties=" & Chr(34) & “Excel 12.0;HDR=否;IMEX=1;” & Chr(34) & ";"

于 2017-01-25T20:24:52.970 回答
1

在我的连接字符串中添加引号后,ISAM 错误消失了(代码如下)。

string GetConnectionString(string fileName)
{
    return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended   Properties=\"Excel 12.0;HDR=YES;\"";
}
于 2014-05-15T08:25:56.053 回答
1

我遇到了完全相同的问题,试图从 Excel 2007 .xlsx 文件中获取数据。

通常可靠的“Microsoft.ACE.OLEDB.12.0”驱动程序只是拒绝连接,抛出与您看到的相同的“找不到可安装的 ISAM ”错误。

最终,我找到了这段代码,它有效:

SELECT * FROM OPENROWSET('MSDASQL',
    'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);
     DBQ=D:\Sample.xlsx', 'SELECT * FROM [Sheet1$]')

希望这可以帮助 !

(改编自此线程中的最终帖子:SQLTeam.com

过了一会儿……

现在,突然之间,我原来连接字符串开始工作了。这之前失败了(在我使用上面的 MSDASQL 字符串成功连接之前),但现在可以成功。

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=D:\Sample.xlsx;HDR=NO;IMEX=1', 
    'SELECT * FROM [Sheet1$]')

奇怪,非常奇怪。

于 2012-01-13T08:36:42.347 回答
1

我今天遇到了同样的问题。我的配置是:

  • 读取 XLSX 文件的 x64 .NET 2.0 桌面应用程序。
  • x64 版本的 Microsoft Access 数据库引擎 2010 Redistributable
  • 我的连接字符串包含值为“Excel 14.0;”的扩展属性属性,正如组件文档所读取的那样。

我遇到了与您完全相同的问题:找不到可安装的 ISAM 异常。我在看到这篇文章后解决了这个问题,该文章指出 MS 站点的组件文档存在错误。我不确定组件的文档是否不准确,我可以说将扩展属性更改为Excel 12.0 Xml解决了这个问题。

于 2011-07-13T19:08:55.523 回答
1

我发现使用 excel 和工具安装 2013 office 并保持以前的版本完好无损。然后进行自定义安装...然后打开 2013 excel 一次,然后将其关闭。然后转到控制面板并添加从 2013 中删除 excel 的删除功能。然后打开 2010 excel 并让它自己快速刷新安装,然后它可以正常工作。

于 2017-01-11T18:55:58.160 回答