asp.net頁面中如何獲取Excel表的內(nèi)容
asp.net頁面中如何獲取Excel表的內(nèi)容,具體內(nèi)容介紹如下所示:
首先引用組件和命名空間
using Microsoft.Office.Interop.Excel; using System.Data.OleDb;
然后把excel上傳到指定路徑
上傳文件方法省略
最后把上傳的excel變成Dataset (復制下面的方法就可以用了)
public DataSet seachExcel(string str) //參數(shù)為excel的路徑 { OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); DataTable dt = new DataTable(); string NameTable = ""; string ConText = ""; try { //獲取Excel路徑 FileInfo info = new FileInfo(str); //獲取文件的擴展名 string fileExt = info.Extension; //判斷用哪種連接方式 if (fileExt .ToLower() ==".xls") { ConText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + str + ";Extended Properties='excel 8.0;hdr=no;IMEX=1';Persist Security Info=false"; } else if (fileExt.ToLower() == ".xlsx") { ConText = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + str + ";Extended Properties='excel 12.0 Xml;hdr=no;IMEX=1';Persist Security Info=False"; } //連接excel OleDbConnection conn = new OleDbConnection(ConText); //打開excel conn.Open(); dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null ); if(dt!=null && dt.Rows .Count >0) { //獲取sheet1表單的表名 NameTable = dt.Rows[0]["TABLE_NAME"].ToString(); //獲取sheet2表單的表名 //NameTable = dt.Rows[1]["TABLE_NAME"].ToString(); } string sql = "select * from [" + NameTable + "]"; da = new OleDbDataAdapter(sql, conn); try { da.Fill(ds,NameTable); //把數(shù)據(jù)填充到Dataset } catch { } conn.Close(); } catch { } return ds; //反回Dataset }
asp.net讀取excel表格數(shù)據(jù)的方法
其實讀取Excel表格中的數(shù)據(jù)和讀取數(shù)據(jù)庫中的數(shù)據(jù)是非常類似的,因為在某種程度上Excel表格可以看成是一張一張的數(shù)據(jù)表。其二者的主要區(qū)別在于所使用的數(shù)據(jù)引擎不一樣。
在本文的程序中,通過下列代碼實現(xiàn)讀取Excel表格數(shù)據(jù),具體如下:
string strDataPathPhy = "c://1.xls"; string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + strDataPathPhy + ";Extended Properties=Excel 8.0"; OleDbConnection myConn = new OleDbConnection(strCon); string strCom = " SELECT * FROM [Sheet1$]"; myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); DataTable dtData = new DataTable(); myCommand.Fill(dtData); myConn.Close();
由于可以把Excel看左一個數(shù)據(jù)庫,里面的工作表就可以看左每張數(shù)據(jù)庫表,所以也可以對搜索結(jié)果進行篩選,例如:
strCom = " SELECT * FROM [Sheet1$] WHERE column1 <> '' ";
這樣dtData里面的數(shù)據(jù)就是[Sheet1$]表中column1不為空的全部數(shù)據(jù)了
以上就是本文介紹asp.net頁面中如何獲取Excel表的內(nèi)容,希望對大家有所幫助
- asp.net實現(xiàn)數(shù)據(jù)從DataTable導入到Excel文件并創(chuàng)建表的方法
- asp.net實現(xiàn)Gradview綁定數(shù)據(jù)庫數(shù)據(jù)并導出Excel的方法
- 直接在線預覽Word、Excel、TXT文件之ASP.NET
- asp.net中Table生成Excel表格的方法
- asp.net中EXCEL數(shù)據(jù)導入到數(shù)據(jù)庫的方法
- asp.net+ajax+sqlserver自動補全功能實現(xiàn)解析
- asp.net(c#)實現(xiàn)從sqlserver存取二進制圖片的代碼
- 快速插入大量數(shù)據(jù)的asp.net代碼(Sqlserver)
- ASP.NET下向SQLServer2008導入文件實例操作方法
- asp.net實現(xiàn)將Excel中多個sheet數(shù)據(jù)導入到SQLSERVER中的方法
相關文章
C# 指針內(nèi)存控制Marshal內(nèi)存數(shù)據(jù)存儲原理分析
這篇文章主要介紹了C# 指針 內(nèi)存控制 Marshal 內(nèi)存數(shù)據(jù)存儲原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02C#根據(jù)反射和特性實現(xiàn)ORM映射實例分析
這篇文章主要介紹了C#根據(jù)反射和特性實現(xiàn)ORM映射的方法,實例分析了反射的原理、特性與ORM的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04C# 7.0之ref locals and returns(局部變量和引用返回)
這篇文章主要介紹了C# 7.0之ref locals and returns,即局部變量和引用返回,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03