1:EXCEL導出非常簡單,將EXCEL模板上傳到項目中後,將其浏覽URL保存下來(excelUrl),然後:
window.location.href="http://localhost:10086/yuanxin/Resources/BusRoute.xlsx" //EXCEL浏覽路徑
或者使用<a href="excelUrl"></a>都行。
2:EXCEL導入並獲取數據,直接貼代碼如下:
public class ExcelHelp { //獲取http請求Request對象 public static HttpRequest baseRequest = HttpContext.Current.Request; //獲取http請求Response對象 public static HttpResponse baseResponse = HttpContext.Current.Response; /// <summary> /// 獲取Post請求EXCEL文件數據 /// </summary> /// <param name="fileFormName">EXCEL的表單名稱</param> /// <returns></returns> public static DataTable GetExcelData(string fileFormName) { //獲取Post請求--表單文件的文件名 string uploadFileName = baseRequest.Files[fileFormName].FileName; //上傳文件到指定目錄(項目根目錄/Resources/uploadFileName)--可根據項目文件目錄進行調整 string path = HttpContext.Current.Server.MapPath("~/Resources/" + uploadFileName); baseRequest.Files[fileFormName].SaveAs(path); DataTable dataTable = new DataTable(); DataSet dataSet = new DataSet(); //解析文件數據,並存入服務器 //備注: "HDR=yes;"是說Excel文件的第一行是列名而不是數據,"HDR=No;"正好與前面的相反。 //"IMEX=1 "如果列中的數據類型不一致,使用"IMEX=1"可必免數據類型沖突。 string strConn = string.Format("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {0}; Extended Properties = 'Excel 8.0;HDR=Yes;IMEX=1';", path); OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn); oada.Fill(dataSet); if (dataSet.Tables.Count > 0) { dataTable = dataSet.Tables[0]; } if (System.IO.File.Exists(path)) { //如果存在則刪除 System.IO.File.Delete(path); } return dataTable; } }
備注: 使用C#創建EXCEL,暫未研究,以後有空再做補充。
在編寫本博客時,查閱了下面幫助博客:導入excel錯誤:外部表不是預期的格式 解決方案