EasyExcel填充模板

需求的产生是这样的,客户提供了一份Excel模板文件,需要我们用数据库中的数据进行填充,要求我们填充后生成的Excel文件和模板基本一致。我们以前一直是直接生成Excel文件,所以有必要研究一下EasyExcel的模板填充技术呢。

代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

@RestController
public class EasyExcelController {
    @GetMapping("/download")
    public void download(HttpServletResponse response) throws IOException {

        Map<String, String> values = new HashMap<>();

        values.put("column1", "列1");
        values.put("column2", "列2");
        values.put("column3", "列3");

        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        response.setHeader(
                "Content-Disposition",
                "attachment;filename=" + URLEncoder.encode("测试文件", "UTF-8") + ".xls");

        String excelPath =
                ResourceUtils.getFile("classpath:excel/template.xlsx").getAbsolutePath();

        ExcelWriterBuilder excelWriterBuilder = EasyExcel
                .write(response.getOutputStream())
                .withTemplate(excelPath);

        ExcelWriterSheetBuilder sheet = excelWriterBuilder.sheet();

        sheet.doFill(values);
    }
}

准备的模板如下:

2021-08-02-14-36-07

使用Postman测试是,注意使用如下的按钮:

2021-08-02-14-36-40

该部分实验只是EasyYapi最基础的使用,后续更高级的应用还需要再深入研究一下。