中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用ADO.NET Excel讀取文件

發布時間:2021-11-03 14:34:57 來源:億速云 閱讀:136 作者:小新 欄目:編程語言

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

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

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

Code// 讀取Excel數據,填充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\";  " + // 指定擴展屬性為   Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作為數據返回,且以文本方式讀取                  "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;  DataTable tblSchema = null;IList<string> tblNames = null;  // 初始化連接,并打開conn = new OleDbConnection(connStr);conn.Open();  // 獲取數據源的表定義元數據                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  GridView1.DataSource = tblSchema;GridView1.DataBind();  // 關閉連接conn.Close();

接著是一段利用“架構信息”動態讀取Excel內部定義的表單或者命名區域的程序片斷:

Codexcel數據,填充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\";  " + // 指定擴展屬性為 Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作為數據返回,且以文本方式讀取                 "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;DataTable tblSchema = null;  IList<string> tblNames = null;  // 初始化連接,并打開conn = new OleDbConnection(connStr);  conn.Open();// 獲取數據源的表定義元數據                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  //GridView1.DataSource = tblSchema;//GridView1.DataBind();  // 關閉連接//conn.Close();  tblNames = new List<string>();  foreach (DataRow row in tblSchema.Rows)   {      tblNames.Add((string)row["TABLE_NAME"]);   // 讀取表名}// 初始化適配器da = new OleDbDataAdapter();  // 準備數據,導入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 {          // 關閉連接          if (conn.State == ConnectionState.Open) {         conn.Close();         }throw;     }  }// 關閉連接if (conn.State == ConnectionState.Open)  {   conn.Close();}// 對導入DataSet的每張sheet進行處理          // 這里僅做顯示GridView1.DataSource = ds.Tables[0];GridView1.DataBind();  GridView2.DataSource = ds.Tables[1];GridView2.DataBind();  // more codes  // 這里我們就不需要對SELEC 語句進行“硬編碼”,可以根據需要動態的構造FROM 字句的“表名”。

以上是“如何使用ADO.NET Excel讀取文件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

千阳县| 汕头市| 凌海市| 西丰县| 庆元县| 松滋市| 高青县| 宿迁市| 塔河县| 杨浦区| 雷波县| 修武县| 哈巴河县| 阜新市| 龙陵县| 武穴市| 本溪市| 迁安市| 泽库县| 桃园县| 平利县| 天等县| 太保市| 山西省| 紫金县| 页游| 绥芬河市| 湘阴县| 晋城| 唐海县| 区。| 和政县| 安龙县| 镇宁| 高雄县| 舟山市| 旬邑县| 怀来县| 缙云县| 普兰店市| 隆林|