使用EasyExcel实现自定义表头导出
项目需求是将前端传来的table表格中数据导出excel,之前的那种如果表头固定的话使用导出很方便,但是这个表头不一定,所以需要进行处理
封装好的那种使用注解的我就不展示了,只围绕当前需求把代码po出来
public void XXXExcel(@RequestBody DynamicExcel excel, HttpServletResponse response) throws IOException {
String fileName = "XXX导出";
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding(Charsets.UTF_8.name());
fileName = URLEncoder.encode(fileName, Charsets.UTF_8.name());
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream()).sheet("XXX导出").head(excel.getHead()).doWrite(excel.getBody());
}
依赖的实体类结构比较简单
@Data
public class DynamicExcel {
List<List<String>> head;
List<List<String>> body;
}
前端传来的json样式