C# conn.open() 外部表格不是預期的格式

來源:互聯網
上載者:User

環境:win7+iis7+Office2007 

在asp.net網站中匯出Excel檔案後,再把檔案匯入到資料庫中。 讀取Excel檔案時,開啟串連出錯。

錯誤為:外部表格不是預期的格式

解決:檢查了一下,匯出的Excel是標準檔案不是html,沒錯,Excel檔案正常。 

  調試代碼,建立連線物件oleDbConnection也正常,但在conn.Open()開啟連結時出錯。 

仔細看了下連結字串,檢查出了錯誤,Excel版本問題,Exce連接字串版本是office2003的 ,更改為Excel2007版本則正常匯入。 

總結規則如下:

using System.Data.OleDb;
using System.Data;

 public void ReadExcelFiless()
        {
            //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'";
//此串連只能操作Excel2007之前(.xls)檔案
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
//此串連可以操作.xls與.xlsx檔案 (支援Excel2003 和 Excel2007 的連接字串)
//備忘: "HDR=yes;"是說Excel檔案的第一行是列名而不是資料,"HDR=No;"正好與前面的相反。
//      "IMEX=1 "如果列中的資料類型不一致,使用"IMEX=1"可必免資料類型衝突。

            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn);
            DataSet ds = new DataSet();
            adp.Fill(ds, "Book1");
            this.GridView1.DataSource = ds.Tables["Book1"].DefaultView;
            this.GridView1.DataBind();
        }

 

 

 

即:

//2003(Microsoft.Jet.Oledb.4.0)
string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", excelFilePath);

//2010(Microsoft.ACE.OLEDB.12.0)
string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'", excelFilePath);

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.