asp.net頁面中如何獲取Excel表的內容,具體內容介紹如下所示:
首先引用組件和命名空間
using Microsoft.Office.Interop.Excel; using System.Data.OleDb;
然后把excel上傳到指定路徑
上傳文件方法省略
最后把上傳的excel變成Dataset (復制下面的方法就可以用了)
public DataSet seachExcel(string str) //參數為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); //把數據填充到Dataset } catch { } conn.Close(); } catch { } return ds; //反回Dataset}
asp.net讀取excel表格數據的方法
其實讀取Excel表格中的數據和讀取數據庫中的數據是非常類似的,因為在某種程度上Excel表格可以看成是一張一張的數據表。其二者的主要區別在于所使用的數據引擎不一樣。
在本文的程序中,通過下列代碼實現讀取Excel表格數據,具體如下:
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看左一個數據庫,里面的工作表就可以看左每張數據庫表,所以也可以對搜索結果進行篩選,例如:
這樣dtData里面的數據就是[Sheet1$]表中column1不為空的全部數據了
以上就是本文介紹asp.net頁面中如何獲取Excel表的內容,希望對大家有所幫助
新聞熱點
疑難解答