公共部分
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
