public class NpoiMemoryStream : MemoryStream ???{ ???????public NpoiMemoryStream() ???????{ ???????????AllowClose = true; ???????} ???????public bool AllowClose { get; set; } ???????public override void Close() ???????{ ???????????if (AllowClose) ???????????????base.Close(); ???????} ???}
?public ActionResult Export() ???????{ ???????????int orderId = base.Id; ???????????Orders order = OrdersModel.GetInstance.GetById(orderId); ???????????var workbook = new XSSFWorkbook(Server.MapPath("~/Template/order.xlsx")); ???????????var sheet = workbook.GetSheetAt(0); ???????????IRow row = sheet.CreateRow(4); ???????????row.CreateCell(0).SetCellValue("货号"); ???????????row.CreateCell(1).SetCellValue("品名"); ???????????row.CreateCell(2).SetCellValue("颜色"); ???????????string fname = string.Format("{0}.xlsx", order.OrderNo); ???????????//导出Excel文件的方法 ?????????????var ms = new NpoiMemoryStream(); ???????????ms.AllowClose = false; ???????????workbook.Write(ms); ???????????ms.Flush(); ???????????ms.Seek(0, SeekOrigin.Begin); ???????????ms.AllowClose = true; ???????????return File(ms, "application/vnd.ms-excel", fname); ???????}
Asp.net MVC NPOI导出Excel
原文地址:https://www.cnblogs.com/bqh10086/p/9249466.html