asp.net 將本地excel表匯入網頁 並在gridview中顯示
阿新 • • 發佈:2019-02-03
思路:用asp:FileUpload控制元件將excel檔案上傳到伺服器,然後根據伺服器的實體地址將該檔案繫結到gridview,最後再將該檔案刪除
string strFile = Server.MapPath("~/Upload/cwbldr/" + System.IO.Path.GetFileName(file.PostedFile.FileName)); file.SaveAs(strFile); //生成連線Excel資料表格的字串 string strOdbcCon = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFile + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'"; //定義OleDbConnection物件例項並連線Excel表格 OleDbConnection OleDB = new OleDbConnection(strOdbcCon); //定義OleDbDataAdapter物件例項並呼叫Select查詢語句提取Excel資料資訊 OleDB.Open(); DataTable schemaTable = OleDB.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = schemaTable.Rows[0][2].ToString().Trim(); OleDbCommand objCmdSelect = new OleDbCommand("select * from [" + tableName + "]", OleDB); OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); objAdapter1.SelectCommand = objCmdSelect; DataSet objDataset1 = new DataSet(); //將Excel中資料填充到資料集 objAdapter1.Fill(objDataset1, "XLData"); OleDB.Close(); cwblg.DataSource = objDataset1; cwblg.DataBind(); File.Delete(strFile);
注意點:預設表名是Sheet$ 後面有$字元的 不是在excel表中直接能看到的表名 也可以用函式來獲取預設表名