2010-08-20 58 views
10

我正在尝试使用64位进程读取Excel电子表格。因此我使用了64位版本的Micorosft Access Database Engine 2010Microsoft ACE OLEDB提供程序无法找到可安装的ISAM异常

下面的代码

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

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

抛出一个异常:

找不到可安装ISAM

使用谷歌,我发现了很多有关此异常的问题。但他们提到JET,似乎不适用于我的问题。

有什么建议吗?

+1

你有没有找到解决这个问题的方法?我有同样的问题。 – PICyourBrain 2010-08-21 13:57:36

+0

我还没有找到解决方案。 – 2010-08-22 18:40:04

+0

SELECT * FROM OPENROWSET('MSDASQL', \t'DRIVER = Microsoft Excel Driver(* .xls,* .xlsx,* .xlsm,* .xlsb); DBQ = D:\ SampleOffice2007.xlsx','SELECT * FROM [司机$]“) – 2012-01-13 08:33:07

回答

1

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

  • x64读取XLSX文件的.NET 2.0桌面应用程序。 Microsoft Access数据库引擎的
  • 64版2010可再发行
  • 我的连接字符串包括扩展属性与价值“的Excel 14.0;”属性,从组件documentation读取。

我和你的问题完全一样:找不到可安装的ISAM异常。我在遇到this article后解决了这个问题,其中指出MS组件的文档中存在一个错误。我不确定组件的文档是否不准确,我可以说的是,将扩展属性更改为Excel 12.0 Xml解决了该问题。

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$]') 

奇数,很奇怪。

1

将引号添加到我的连接字符串后,ISAM错误消失(下面的代码)。

string GetConnectionString(string fileName) 
{ 
    return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=YES;\""; 
} 
1

我发现使用excel和工具安装2013 office,并保持以前的版本不变。然后进行自定义安装...然后打开2013 excel一次,然后关闭它。然后转到控制面板,并添加删除功能,从2013年删除Excel。然后打开2010 Excel的,让它做自己的快速刷新安装,然后它没有错误的工作。

0

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

=>原始格式在后< =
//新版本,任何xls文件 “供应商= Microsoft.ACE.OLEDB.12.0;数据源='C :\ AlmostAnyExcelVersionFileRunningUnder64BitOS.xls'; Extended Properties ='Excel 12.0; HDR = NO; IMEX = 1;';“

=>校正的格式< =
XLConnection = “提供者= Microsoft.ACE.OLEDB.12.0;数据源=” & CHR(34)& ExceilFileDialog.FileName & CHR(34)& “;扩展属性=” & Chr(34)&“Excel 12.0; HDR = NO; IMEX = 1;” & Chr(34)&“;”

相关问题