Asp.net MVC NPOI导出Excel

 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);
        }

 

posted @ 2018-07-01 10:05  软件技术开发  阅读(151)  评论(0编辑  收藏  举报