1. 程式人生 > >asp.net 將本地excel表匯入網頁 並在gridview中顯示

asp.net 將本地excel表匯入網頁 並在gridview中顯示

思路:用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表中直接能看到的表名  也可以用函式來獲取預設表名