第一步:NuGet下載EPPlus
第二步:控制器代碼,在名為CorrectHomeWork的控制器創建方法ExcelExport,頭部不需要[HttpPost]
//將該課程中的該作業命題的全部學生作業導入Excel表 public ActionResult ExcelExport() { string Task_Title = Session["Task_Title"].ToString(); string L_Name = Session["L_Name"].ToString(); string C_Name = Session["C_Name"].ToString(); //指定項目存放的路徑 string sWebRootFolder = AppDomain.CurrentDomain.BaseDirectory + "/DownLoadExcelexport"; //指定項目名字 //string sFileName = $"{Guid.NewGuid()}.xlsx"; string sFileName = C_Name+ L_Name+ Task_Title+"作業成績表"+ $"{Guid.NewGuid()}.xlsx"; //把項目名加到指定存放的路徑 FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName)); using (ExcelPackage package = new ExcelPackage(file)) { //添加worksheet的名字 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("作業成績單"); //添加表頭名字 worksheet.Cells[1, 1].Value = "學號"; worksheet.Cells[1, 2].Value = "班級"; worksheet.Cells[1, 3].Value = "作業命題"; worksheet.Cells[1, 4].Value = "分數"; worksheet.Cells[1, 5].Value = "首次提交日期"; worksheet.Cells[1, 6].Value = "最后修改日期"; worksheet.Cells[1, 7].Value = "教師評價"; //添加值 var rowNum = 2; // rowNum 1 is head var Homework = homeWorkService.Query(s => s.Task_Title == Task_Title && s.L_Name == L_Name); //var Homework = from s in con.Homework select s;//循環數據庫輸出數據 Homework = Homework.OrderBy(s => s.S_Number); foreach (var message in Homework) { worksheet.Cells["A" + rowNum].Value = message.S_Number; worksheet.Cells["B" + rowNum].Value = message.C_Name; worksheet.Cells["C" + rowNum].Value = message.Task_Title; worksheet.Cells["D" + rowNum].Value = message.HW_Grade; worksheet.Cells["E" + rowNum].Value = message.HW_SubmitDate.ToString(); worksheet.Cells["F" + rowNum].Value = message.HW_UpdataDate.ToString(); worksheet.Cells["G" + rowNum].Value = message.HW_Comment; rowNum++; } package.Save(); } //獲取到存在項目中文件的路徑 var fileUrl = Server.MapPath("~/DownLoadExcelexport/" + sFileName); //application/ms-excel為內部固定的, return File(fileUrl, "application/ms-excel", sFileName); }
第三步:在視圖<a>標簽調用控制器方法:
<span style="font-size:18px;color:blue"><a href="/CorrectHomeWork/ExcelExport">Excel表導出作業</a></span>