当前位置: 代码迷 >> 综合 >> asp.net NPOI 导出execl
  详细解决方案

asp.net NPOI 导出execl

热度:9   发布时间:2024-02-13 14:05:16.0

NPOI 引用

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.HSSF.Util;

 

  HSSFWorkbook book = new HSSFWorkbook();

            ICellStyle cellStyle = book.CreateCellStyle();
cellStyle.FillPattern = FillPattern.SolidForeground;
string ExcelName = "线路管理"; //文件名
ISheet sheet = book.CreateSheet(ExcelName);
IRow rowtemp = sheet.CreateRow(0);  //第一行

            rowtemp.CreateCell(0).SetCellValue("");
rowtemp.CreateCell(1).SetCellValue("");//
rowtemp.CreateCell(2).SetCellValue("");
rowtemp.CreateCell(3).SetCellValue("");

           double price = 0;

            for (int i = 0; i < Count; i++)
{
IRow row = sheet.CreateRow(i + 1); //行数
row.CreateCell(0).SetCellValue(列名);
row.CreateCell(1).SetCellValue(列名);
row.CreateCell(2).SetCellValue(列名);
row.CreateCell(3).SetCellValue(列名); 

              price += 列名

            }

            IRow totalRow = sheet.CreateRow(Count+3); //总行+ 3 显示汇总数据
totalRow.CreateCell(0).SetCellValue("总金额:" + price);

            //流

            MemoryStream ms = new MemoryStream();
book.Write(ms);
var buf = ms.ToArray();
string fileName = ExcelName + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//保存为Excel文件  到项目文件夹中
string time = DateTime.Now.ToString("D");
string path = Server.MapPath("../manager/ExcelFile/" + fileName);
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, 0, buf.Length);
fs.Flush();
}

            ms.Flush();
ms.Position = 0;

           HttpContext curContext = HttpContext.Current; //浏览器下载
//设置编码及附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = Encoding.UTF8;
curContext.Response.Charset = "";
//string fullName = HttpUtility.UrlEncode("FileName.xls", Encoding.UTF8);
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));

            byte[] data = ms.GetBuffer();
curContext.Response.BinaryWrite(data);
curContext.Response.End();