背景:由于需要下载模板,模板包含下拉选择框,但是下拉选择框不想手写,并且需要从数据库读取,由于直接设置excel会有单元格最大255个字符长度限制,所以用到以下部分代码。
思路:由于数据模板在sheet1,所以将数据库数据读取,写到sheet2里第一行第一列,然后开启数据验证,选取数据列指向sheet1的下拉列表列位置,最后隐藏sheet2页。
实现:
@Value(value = "${spring.importTemplateFileLocation}")
private String importTemplateFileLocation;
@GetMapping("/loadTemplateFile")
@Operation(summary = "下载项目导入模板")
public void loadTemplateFile(HttpServletResponse response) {
demoService.loadTemplateFile(response);
}
@Override
public void loadTemplateFile(HttpServletResponse response) {
response.setContentType("application/vnd.ms-excel.sheet.macroEnabled.12");
response.setCharacterEncoding("utf-8");
Workbook wb =