|
//Excel導(dǎo)出方法 public void ExportToExcel() { //模板文件路徑 string SaveDicPath = Server.MapPath("~/TemplateFiles/"); string SaveFilePath = SaveDicPath + "userfile.xls"; //導(dǎo)出文件路徑 string TempPath = Server.MapPath("~/TempFiles/"); if (!Directory.Exists(TempPath)) { Directory.CreateDirectory(TempPath); } //excel文件名 string FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; string newFileName = TempPath + FileName; //文件存在則刪除,避免復(fù)制發(fā)生錯(cuò)誤 if (File.Exists(newFileName)) { File.Delete(newFileName); } //將模板文件復(fù)制新的excel文件,用來(lái)下載 File.Copy(SaveFilePath, newFileName); //初始化對(duì)象 Application app = null; Workbook MyBook = null; Worksheet mySheet = null; app = new Application(); MyBook = app.Workbooks.Open(newFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); mySheet = (Worksheet)MyBook.Worksheets[1]; System.Data.DataTable dt = (System.Data.DataTable)Session["datatable"]; //向EXCEL循環(huán)插入值 for (int i = 0; i < dt.Rows.Count; i++) { mySheet.Cells[2 + i, 1] = dt.Rows[i][1].ToString().Trim(); //部門(mén) mySheet.Cells[2 + i, 2] = dt.Rows[i][3].ToString().Trim(); //工號(hào) mySheet.Cells[2 + i, 3] = dt.Rows[i][4].ToString().Trim(); //姓名 mySheet.Cells[2 + i, 4] = ""; } //保存工作簿 MyBook.Save(); MyBook.Saved = true; if (mySheet != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet); mySheet = null; } if (MyBook != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(MyBook); MyBook = null; } //關(guān)閉對(duì)象 app.Workbooks.Close(); app.Quit(); if (app != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(app); app = null; } GC.Collect(); //垃圾回收 //跳轉(zhuǎn)到相應(yīng)的excel文件,進(jìn)行下載 Response.Redirect("..//TempFiles//" + FileName); } |
|
|
來(lái)自: 悟靜 > 《.net和asp.net》