TemplateExporter模板导出

yml配置本地路径

template:
  excel-template-path: E:\data\export
  image-path:

exoprt表格设计,放到 E:\data\export路径下
在这里插入图片描述
在这里插入图片描述
取值用${student.实体类里边的字段(不要get())}

  public void exprot(Student student, HttpServletResponse response) {
  		//先将需要导出的数据查询出来
        List<Student> list = this.selectAll(student);
        Map<String, Object> map = new HashMap<>();
        map.put("list", list);
        //本地必须有这个模板
        TemplateExporterInfo templateExporterInfo = new TemplateExporterInfo("student.xlsx");
        templateExporterInfo.setClientNonSuffixFileName("学生表");
        templateExporterInfo.putVariable(map);
        TemplateExporter templateExporter = new TemplateExporter();
        templateExporter.addTemplateExporterInfo(templateExporterInfo);
        templateExporter.export(response);
    }

在这里插入图片描述
如果模板是这样的情况下,道理一样的map怎么存在这就怎么取

//region 数据源 List resultList = new ArrayList(); Model model = new Model(); model.setCode("01"); model.setName("测试1"); resultList.add(model); model = new Model(); model.setCode("02"); model.setName("测试2"); resultList.add(model); //endregion //获得模版 File directory = new File("src/main/resources/templates"); String templatePath = directory.getCanonicalPath(); String templateFile = templatePath + "\\template.xls"; //导出文件名 SimpleDateFormat simpl = new SimpleDateFormat("yyyyMMddHHmmss"); String currntTime = simpl.format(new Date()); String fileName = currntTime + "报表.xls"; //将结果放入 Map beans = new HashMap(); List values = new ArrayList(); values.add(resultList); beans.put("values", values); beans.put("title", "测试title"); //文件名称统一编码格式 fileName = URLEncoder.encode(fileName, "utf-8"); //生成的导出文件 File destFile = File.createTempFile(fileName, ".xls"); //transformer转到Excel XLSTransformer transformer = new XLSTransformer(); BufferedInputStream bis = null; BufferedOutputStream bos = null; try { //将数据添加到模版中生成新的文件 transformer.transformXLS(templateFile, beans, destFile.getAbsolutePath()); //将文件输入 InputStream inputStream = new FileInputStream(destFile); //设置response参数,可以打开下载页面 response.reset(); //设置响应文本格式 response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xls").getBytes(), "iso-8859-1")); //将文件输出到页面 ServletOutputStream out = response.getOutputStream(); bis = new BufferedInputStream(inputStream); bos = new BufferedOutputStream(out)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值