通过Excel模板导入数据的功能需要先把带数据的Excel文件上传到后台,然后再读取EXCEL。
臃肿的做法:
1 //获取Execle文件名 DateTime日期函数 2 string tm = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMdd"); 3 string serverPath = ConfigurationManager.AppSettings["AttPhyPath"] + "\\Excel\\" + tm; 4 if (!Directory.Exists(serverPath)) { 5 Directory.CreateDirectory(serverPath); 6 } 7 string fileNames = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMddHHmmss") + "_" + userInfo.UserData.OrgName + "_" + System.IO.Path.GetFileName(postFile.FileName); 8 postFile.SaveAs(Path.Combine(serverPath, fileNames)); 9 ExportExcel xls = new ExportExcel(); 10 DataTable dt = xls.ExcelToDataTable(serverPath + "\\" + fileNames, "Sheet1", true);
建议的做法:
1 string tempFileName = System.IO.Path.GetTempFileName(); 2 postFile.SaveAs(tempFileName); 3 4 ExportExcel xls = new ExportExcel(); 5 DataTable dt = xls.ExcelToDataTable(tempFileName, "Sheet1", true);
System.IO.Path.GetTempFileName() 会创建唯一命名的零字节的临时文件并返回其绝对路径,比如:C:/Windows/Temp/tmpAD.tmp
什么是Temp目录?用来存储在文件操作过程中的临时文件,比如安装软件、解压缩*.rar压缩包之类的操作都会先把必要的文件复制到Temp目录。Temp目录会不会自动删除?Temp目录不会自动删除,日复一日,月复一月,Temp目录下的文件越来越多,浪费磁盘空间是次要的,严重的是这些小文件会逐渐形成磁盘碎片,影响了读写速度,所以要定期进行手工删除。