2010-08-20 60 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)&「;」

相關問題