EasyExcel写文件

公共部分

HttpServletResponse

// 需要处理response
HttpServletResponse response;
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download");
response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"), "GBK") + ".xlsx");

写入对象:SendTaskListDataBo

public class SendTaskListDataBo extends BaseRowModel implements Serializable {
    /** value为表头,index为列号 */
    @ExcelProperty(value = "发放主任务ID" ,index = 0)
    private Long mainTaskId;
    @ColumnWidth(20)// 列宽度
    @ExcelProperty(value = "发放主任务名称" ,index = 1)
    private String mainTaskName;
}

通过对象写入方式

// 需要写入的数据
List<SendTaskListDataBo> sendTaskListDataBos;
// 写入到excel中,.sheet定义sheet名称
EasyExcel.write(response.getOutputStream(), SendTaskListDataBo.class)
.sheet("发放任务列表").doWrite(sendTaskListDataBos);

通过模板填充方式

// 模板名称,文件位置:resources/templates/excel
String  templateFileName = "templates" + File.separator + "excel" + File.separator + "export_send_task_template.xlsx";
// 写入excel,springboot 使用new ClassPathResource();
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate
(new ClassPathResource(templateFileName).getInputStream()).build();

WriteSheet writeSheet = EasyExcel.writerSheet().build();
// 单个对象填充 {name}
excelWriter.fill(sendTaskListDataBo, writeSheet);
// 填充集合 {.name}
excelWriter.fill(subTaskDataBos, writeSheet);
excelWriter.finish();

模板文件excel

原文地址:https://www.cnblogs.com/ngrzr/p/11983251.html