.net MVC使用NPOI读取Excel模板,再写入数据
NPOI其实已经介绍的差不多了,再贴一个方便以后复制粘贴。
亮点其实是 Server.MapPath 这个东西,可以找到MVC工程下的文件夹,找路径还是很方便的。
/// <summary> /// 设备导出Excel表格 /// </summary> public FileResult ExportExcel() { string fileDir = Server.MapPath("~/ReportTemplate/我的模板.xls"); FileStream Dir = new FileStream(fileDir, FileMode.Open, FileAccess.Read); HSSFWorkbook workbook = new HSSFWorkbook(Dir); ISheet sheet = workbook.GetSheet("sheet1"); MemoryStream ms = new MemoryStream(); DataTable table = EQEquipmentBLL.GetInstance().GetListForExport(""); for (int i = 2; i < table.Rows.Count; i++) { sheet.GetRow(i).GetCell(0).SetCellValue(table.Rows[i-2]["EqID"].ToString()); sheet.GetRow(i).GetCell(1).SetCellValue(table.Rows[i-2]["EqName"].ToString()); sheet.GetRow(i).GetCell(2).SetCellValue(table.Rows[i-2]["ProduceFactory"].ToString()); sheet.GetRow(i).GetCell(3).SetCellValue(table.Rows[i-2]["Model"].ToString()); } sheet.ForceFormulaRecalculation = true; //强制计算Excel中的公式 workbook.Write(ms); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); return File(ms, "application/ms-excel", $"我的模板{DateTime.Now.ToString("D")}.xls"); }