需求的产生是这样的,客户提供了一份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);
}
}
|
准备的模板如下:
使用Postman测试是,注意使用如下的按钮:
该部分实验只是EasyYapi最基础的使用,后续更高级的应用还需要再深入研究一下。