asp.net頁面中如何獲取Excel表的內(nèi)容
asp.net頁面中如何獲取Excel表的內(nèi)容,具體內(nèi)容介紹如下所示:
首先引用組件和命名空間
using Microsoft.Office.Interop.Excel; using System.Data.OleDb;
然后把excel上傳到指定路徑
上傳文件方法省略
最后把上傳的excel變成Dataset (復(fù)制下面的方法就可以用了)
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); //獲取文件的擴(kuò)展名 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ù)的方法
其實(shí)讀取Excel表格中的數(shù)據(jù)和讀取數(shù)據(jù)庫中的數(shù)據(jù)是非常類似的,因?yàn)樵谀撤N程度上Excel表格可以看成是一張一張的數(shù)據(jù)表。其二者的主要區(qū)別在于所使用的數(shù)據(jù)引擎不一樣。
在本文的程序中,通過下列代碼實(shí)現(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看左一個(gè)數(shù)據(jù)庫,里面的工作表就可以看左每張數(shù)據(jù)庫表,所以也可以對搜索結(jié)果進(jìn)行篩選,例如:
strCom = " SELECT * FROM [Sheet1$] WHERE column1 <> '' ";
這樣dtData里面的數(shù)據(jù)就是[Sheet1$]表中column1不為空的全部數(shù)據(jù)了
以上就是本文介紹asp.net頁面中如何獲取Excel表的內(nèi)容,希望對大家有所幫助
- asp.net實(shí)現(xiàn)數(shù)據(jù)從DataTable導(dǎo)入到Excel文件并創(chuàng)建表的方法
- asp.net實(shí)現(xiàn)Gradview綁定數(shù)據(jù)庫數(shù)據(jù)并導(dǎo)出Excel的方法
- 直接在線預(yù)覽Word、Excel、TXT文件之ASP.NET
- asp.net中Table生成Excel表格的方法
- asp.net中EXCEL數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的方法
- asp.net+ajax+sqlserver自動補(bǔ)全功能實(shí)現(xiàn)解析
- asp.net(c#)實(shí)現(xiàn)從sqlserver存取二進(jìn)制圖片的代碼
- 快速插入大量數(shù)據(jù)的asp.net代碼(Sqlserver)
- ASP.NET下向SQLServer2008導(dǎo)入文件實(shí)例操作方法
- asp.net實(shí)現(xiàn)將Excel中多個(gè)sheet數(shù)據(jù)導(dǎo)入到SQLSERVER中的方法
相關(guān)文章
C# 指針內(nèi)存控制Marshal內(nèi)存數(shù)據(jù)存儲原理分析
這篇文章主要介紹了C# 指針 內(nèi)存控制 Marshal 內(nèi)存數(shù)據(jù)存儲原理分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02C#根據(jù)反射和特性實(shí)現(xiàn)ORM映射實(shí)例分析
這篇文章主要介紹了C#根據(jù)反射和特性實(shí)現(xiàn)ORM映射的方法,實(shí)例分析了反射的原理、特性與ORM的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04C# 7.0之ref locals and returns(局部變量和引用返回)
這篇文章主要介紹了C# 7.0之ref locals and returns,即局部變量和引用返回,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03C#使用代碼實(shí)現(xiàn)春晚撲克牌魔術(shù)
這篇文章主要為大家詳細(xì)介紹了C#如何使用代碼實(shí)現(xiàn)龍年春晚撲克牌魔術(shù)(守歲共此時(shí)),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2024-02-02WPF實(shí)現(xiàn)能自由改變形狀的四邊形和六邊形
這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)能自由改變形狀的四邊形和六邊形,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03