簡體   English   中英

嘗試解析Excel電子表格時出現“找不到可安裝的ISAM”錯誤

[英]“Could not find installable ISAM” error when trying to parse an excel spreadsheet

我正在回發一個xls文件,並在填充適配器時收到錯誤“找不到可安裝的ISAM”。 我有Office 2007 32位,運行XP 64位

UPDATE將連接字符串更改為12.0到4.0-相同的問題

  private string convertFileToPSV(HttpPostedFileBase file) {

        var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties=\"Excel 8.0;HDR=YES;\"";

        var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1]", connectionString);
        var dt = new DataTable();

        adapter.Fill(dt);

        string psvSting = "";

        for (int i = 0; i < dt.Rows.Count; i++) {
            for (int j = 0; j < dt.Columns.Count; j++) {
                psvSting += "\"" + dt.Rows[i][j].ToString() + "\"|";
            }
        }

我想我的問題可以幫助您。 它只需要兩個; 在末尾。

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties='Excel 8.0;HDR=YES;';";

正如您所說的,您選擇的DB驅動程序是Access 2010驅動程序。 如果您在其上運行的計算機沒有訪問權限2010 ...它將無法工作。 如羅恩建議您可以在此處下載驅動程序

或者,您可以嘗試使用Provider=Microsoft.Jet.OLEDB.4.0因為XP和Vista附帶了該軟件。如果您使用的是Windows 7,則必須使用下載。

excel版本也應該與您使用的excel匹配:

Excel 2003 Excel 8.0

Excel 2007/2010 Excel 12.0

總結中,您的連接字符串應顯示為

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
                           "Source="+ fileName +";" + 
                           "Extended Properties=\"Excel 12.0;HDR=YES;\""; 

Jet驅動程序僅為x86。 如果您嘗試在x64操作系統上運行它,將無法正常工作。 確保在.NET項目的屬性中明確地將x86定位為目標,以確保它加載了x86非托管版本的驅動程序。

嘗試使用“ Data Source= ”代替“ Source= ”。

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                       "Data Source="+ fileName +";" +
                       "Extended Properties=\"Excel 8.0;HDR=YES;\"";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM