asp.net Excel檔案操作執行個體

來源:互聯網
上載者:User
 代碼如下 複製代碼
Provider=Microsoft.Jet.OleDb.4.0;Data Source=Excel檔案位置;Extended Properties='Excel 8.0;HDR=NO;'

在 Extended Properties 中,Excel 8.0 表示為版本號碼,Microsoft Jet 4.0 OLE DB Provider 支援 Excel 3.0,4.0,5.0,8.0 資料庫類型。也就是說它不能串連 Excel 2007 的檔案,對於 Excel 2007 檔案,可以將其儲存為 97-2003 的格式。

HDR=NO 表示 Excel 地區不包含標題,也就是說地區的第一行就是資料行,此時使用 F1 表示第一個欄位,使用 F2 表示第二個欄位,以此類推。

使用這種像資料庫的方式操作 Excel 還有許多細節技術,將在後面的文章中一一介紹。

注意

Excel 也屬性檔案式資料庫,注意使用後釋放資源。

執行個體操作

 

 代碼如下 複製代碼

string sql = @"select * from [Sheet1$]";

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" +
                        Server.MapPath("foo.xls") + ";" +
                        "Extended Properties='Excel 8.0;HDR=NO;'");
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    Response.Write(reader.GetString(0) + "<br />");
}

reader.Close();
reader.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();

注意資料類型

如果沒有在 Excel 中為儲存格指定資料的類型,那麼 OLEDB 就通過猜測來擷取目前的儲存格的資料類型。預設是對當前行的前後 8 行進行掃描,來猜測儲存格的資料類型。要更改預設的掃描行數,則在連接字串擴充屬性中為 MAXSCANROWS 指定相應的值。

如果我們將儲存格資料的類型指定為數字,那麼寫入 Excel 後就自動變為數字類型,即使在 SQL 陳述式中是將其當作字串來插入,比如:set F18='832'。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.