日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
學(xué)習(xí)筆記:教你使用ADO.NETExcel讀取文件

大家都知道ADO.NET關(guān)系數(shù)據(jù)庫(kù),經(jīng)過(guò)詳細(xì)的調(diào)查用的人還是蠻多的,為此呢給大家介紹介紹ADO.NET Excel讀取的問(wèn)題。在關(guān)系數(shù)據(jù)庫(kù)提供的各種對(duì)象中(表、視圖、存儲(chǔ)過(guò)程等),Excel 數(shù)據(jù)源僅提供相當(dāng)于表的對(duì)象,它由指定工作簿中的工作表和定義的命名區(qū)域組成。命名區(qū)域被視為“表”,而工作表被視為“系統(tǒng)表”)這里我們將ADO.NET Excel讀取也當(dāng)作一個(gè)“數(shù)據(jù)庫(kù)”來(lái)對(duì)待,然后利用OleDbConnection.GetOleDbSchemaTable 方法,要獲取所需的架構(gòu)信息,該方法獲取的架構(gòu)信息與ANSI SQl-92是兼容的。

成都網(wǎng)站建設(shè)公司更懂你!創(chuàng)新互聯(lián)公司只做搜索引擎喜歡的網(wǎng)站!成都網(wǎng)站制作前臺(tái)采用搜索引擎認(rèn)可的DIV+CSS架構(gòu),全站HTML靜態(tài),HTML5+CSS3網(wǎng)站,提供:網(wǎng)站建設(shè),微信開(kāi)發(fā),微信小程序,商城開(kāi)發(fā),手機(jī)APP定制開(kāi)發(fā),域名申請(qǐng),服務(wù)器租售,網(wǎng)站代托管運(yùn)營(yíng),微信公眾號(hào)代托管運(yùn)營(yíng)。

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

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

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

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

當(dāng)前標(biāo)題:學(xué)習(xí)筆記:教你使用ADO.NETExcel讀取文件
網(wǎng)址分享:http://www.5511xx.com/article/dhdsosc.html