EasyExcel读取模板填充数据

EasyExcel读取模板填充数据

使用阿里的EasyExcel下载实现很容易,这次遇到一个需求,要在每个sheet的最上面加上固定的文字,举个例子,如下模板:

第一种方法合并单元格,然后设置背景色、字体。但是这个方法个人觉得会有点麻烦。于是有了第二个方法,设置为模板,然后读取模板,往里面填充数据。实操起来!!!

1、首先我们准备一个模板。

EasyExcel读取模板填充数据_第1张图片

这里我创建了五个sheet,每个sheet的数据是一样的,只不过固定文字不一样(最上面的那一部分)。

把这个模板放在你项目目录中,我放在了src\main\resources\template\testTemplate.xlsx下,这样读取文件会方便一点,使用相对路径就行,即使后面把程序打包丢到服务器,也是兼容的。

注意:表头下一行的.{xxx}表示填充list,xxx跟你的字段命名一样。

2、代码实现

/**
* 实现多个sheet返回不同数据,下面例子是相同数据,不影响。是可以变的。
*
**/
public void exportTest(HttpServletResponse response) throws IOException {
        String fileName = System.currentTimeMillis() + "测试多sheet填充数据" + ".xlsx";
        ExcelDataUtil.setResponseHeader(response, fileName);

        ClassPathResource classPathResource = new ClassPathResource("template/testTemplate.xlsx");
        InputStream inputStream = classPathResource.getInputStream();

        ExcelWriter excelWriter = null;
        try {
            excelWriter = 			           EasyExcel.write(response.getOutputStream()).withTemplate(inputStream)
                .excelType(ExcelTypeEnum.XLSX).build();

            excelWriter.fill(fillData(), EasyExcel.writerSheet(0).build());

            excelWriter.fill(fillData(), EasyExcel.writerSheet(1).build());

            excelWriter.fill(fillData(), EasyExcelFactory.writerSheet(2).build());

            excelWriter.fill(fillData(), EasyExcelFactory.writerSheet(3).build());

            excelWriter.fill(fillData(), EasyExcelFactory.writerSheet(4).build());

            excelWriter.finish();

        } finally {
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }
    }


 private List<FillData> fillData() {
        List<FillData> list = ListUtils.newArrayList();
        for (int i = 0; i < 10; i++) {
            FillData fillData = new FillData();
            list.add(fillData);
            fillData.setName("张三");
            fillData.setNumber(5.2);
            fillData.setDate(new Date());
        }
        return list;
    }

3、生成的文件

EasyExcel读取模板填充数据_第2张图片

你可能感兴趣的:(java,EasyExcel)