C# 使用NPOI 将数据导入到模板Excel里

项目需求:

需要将前台页面上的某些数据写入到模板Excel 里面。 

解决方案:

采用NPOI (DLL下载)。

1. 前台页 Default.aspx

2. 逻辑处理页 toExcel.aspx

3. 模板SMARTRpt.xlsx 放到 template文件夹里

前台代码

 

收集数据 

 function toExcel() {

       .
       .
       .
       .
        post("/toExcel.aspx", {action:"tabletoexcel", reportData: data });
    }

前台发送数据

 function post(URL, PARAMS) {
        var temp = document.createElement("form");
        temp.action = URL;
        temp.method = "post";
        temp.style.display = "none";
        for (var x in PARAMS) {
            var opt = document.createElement("textarea");
            opt.name = x;
            opt.value = PARAMS[x];
            temp.appendChild(opt);
        }

        document.body.appendChild(temp);
        temp.submit();
        return temp;
    }

后台toExcel.aspx处理数据

接收数据

 string tableHtml = Request.Form["reportData"];

使用NPOI 读取Excel 模板

  string TempletFileName = Server.MapPath("./template/SMARTRpt.xlsx");
  FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
            
  xssfworkbook = new XSSFWorkbook(file);
  ISheet sheet1 = xssfworkbook.GetSheet("SoldMargin");

修改模板的数据

sheet1.GetRow(1).GetCell(1).SetCellValue(200200);
sheet1.GetRow(2).GetCell(1).SetCellValue(300);
sheet1.GetRow(3).GetCell(1).SetCellValue(500050);

下载模板


 string filename = "Rpt.xlsx";
 Response.AddHeader("Content-Disposition", "attachment;filename=" + 
 HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8));
 //Response.ContentType = "application/octet-stream;charset=gbk";
 xssfworkbook.Write(Response.OutputStream);
            
 Response.End();

 源代码下载

你可能感兴趣的:(C#,NPOI,NPOI,下载excel模板)