真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用ADO.NETExcel讀取文件

小編給大家分享一下如何使用ADO.NET Excel讀取文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作與策劃設(shè)計(jì),安溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:安溪等地區(qū)。安溪做網(wǎng)站價(jià)格咨詢:18982081108

在關(guān)系數(shù)據(jù)庫提供的各種對象中(表、視圖、存儲過程等),Excel 數(shù)據(jù)源僅提供相當(dāng)于表的對象,它由指定工作簿中的工作表和定義的命名區(qū)域組成。命名區(qū)域被視為“表”,而工作表被視為“系統(tǒng)表”)這里我們將ADO.NET Excel讀取也當(dāng)作一個(gè)“數(shù)據(jù)庫”來對待,然后利用OleDbConnection.GetOleDbSchemaTable 方法,要獲取所需的架構(gòu)信息,該方法獲取的架構(gòu)信息與ANSI SQl-92是兼容的。

注意:對于那些不熟悉 OLE DB 架構(gòu)行集的人而言,它們基本上是由 ANSI SQL-92 定義的數(shù)據(jù)庫構(gòu)造的標(biāo)準(zhǔn)化架構(gòu)。每個(gè)架構(gòu)行集具有為指定構(gòu)造提供定義元數(shù)據(jù)的一組列(稱作 .NET 文檔中的“限制列”)。這樣,如果請求架構(gòu)信息(例如,列的架構(gòu)信息或排序規(guī)則的架構(gòu)信息),則您會明確知道可以得到哪種類型的數(shù)據(jù)。如果希望了解更多信息,請?jiān)L問 Appendix B:Schema Rowsets。以下是讀取Excel文件內(nèi)“表”定義元數(shù)據(jù),并顯示出來的的ADO.NET Excel讀取程序片斷:

Code// 讀取Excel數(shù)據(jù),填充DataSet// 連接字符串      string xlsPath = Server.MapPath("~/app_data/somefile.xls");  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                  "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";  " + // 指定擴(kuò)展屬性為   Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作為數(shù)據(jù)返回,且以文本方式讀取                  "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;  DataTable tblSchema = null;IList tblNames = null;  // 初始化連接,并打開conn = new OleDbConnection(connStr);conn.Open();  // 獲取數(shù)據(jù)源的表定義元數(shù)據(jù)                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  GridView1.DataSource = tblSchema;GridView1.DataBind();  // 關(guān)閉連接conn.Close();

接著是一段利用“架構(gòu)信息”動(dòng)態(tài)讀取Excel內(nèi)部定義的表單或者命名區(qū)域的程序片斷:

Codexcel數(shù)據(jù),填充DataSet// 連接字符串   string xlsPath = Server.MapPath("~/app_data/somefile.xls");  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                  "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";  " + // 指定擴(kuò)展屬性為 Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作為數(shù)據(jù)返回,且以文本方式讀取                 "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;DataTable tblSchema = null;  IList tblNames = null;  // 初始化連接,并打開conn = new OleDbConnection(connStr);  conn.Open();// 獲取數(shù)據(jù)源的表定義元數(shù)據(jù)                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  //GridView1.DataSource = tblSchema;//GridView1.DataBind();  // 關(guān)閉連接//conn.Close();  tblNames = new List();  foreach (DataRow row in tblSchema.Rows)   {      tblNames.Add((string)row["TABLE_NAME"]);   // 讀取表名}// 初始化適配器da = new OleDbDataAdapter();  // 準(zhǔn)備數(shù)據(jù),導(dǎo)入DataSetDataSet ds = new DataSet();  foreach (string tblName in tblNames)  {      da.SelectCommand = new OleDbCommand(String.Format(sql_F, tblName), conn);     try {          da.Fill(ds, tblName);   }     catch {          // 關(guān)閉連接          if (conn.State == ConnectionState.Open) {         conn.Close();         }throw;     }  }// 關(guān)閉連接if (conn.State == ConnectionState.Open)  {   conn.Close();}// 對導(dǎo)入DataSet的每張sheet進(jìn)行處理          // 這里僅做顯示GridView1.DataSource = ds.Tables[0];GridView1.DataBind();  GridView2.DataSource = ds.Tables[1];GridView2.DataBind();  // more codes  // 這里我們就不需要對SELEC 語句進(jìn)行“硬編碼”,可以根據(jù)需要?jiǎng)討B(tài)的構(gòu)造FROM 字句的“表名”。

以上是“如何使用ADO.NET Excel讀取文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享題目:如何使用ADO.NETExcel讀取文件
文章路徑:http://weahome.cn/article/iijggd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部