一.pom依赖导入
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
二.模板设置
1.在项目创建excel目录
2.配置模板(dataList,dataList2分别为导出的数据集合,名字必须一致;fe表示循环插入,t为集合元素对象,‘{ {’开始,‘}}’结束)
sheet1
sheet2三.代码实现
1.设置实体DataEntity(Data2Entity类似)
@Data
public class DataEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String data1;
private String data2;
private String data3;
private String data4;
private String data5;
private String data6;
private String data7;
private String data8;
private String data9;
private String data10;
private String data11;
private String data12;
private String data13;
}
2.获取dataList(dataList2类似)
public List<DataEntity> getDataList(Map<String, Object> param) {
return testDataServiceImpl.getDataList(param);
}
3.导出
public void exportDataExcel(Map<String, Object> param, HttpServletRequest request, HttpServletResponse response) {
try {
String fileName = "test";
String fileUrl = System.getProperty("user.dir") + "/excel/test.xlsx";
TemplateExportParams params = new TemplateExportParams(fileUrl, true);
params.setStyle(ExcelStyleType.BORDER.getClazz());
params.setSheetNum(5);
Map<String, Object> map = new HashMap<String, Object>();
map.put("dataList", getDataList(param));
map.put("dataList2", getData2List(param));
Workbook book = ExcelExportUtil.exportExcel(params, map);
// 下载方法
export(response, book, fileName);
} catch (Exception e) {
throw new RuntimeException("导出异常");
}
}
public void export(HttpServletResponse response, Workbook workbook, String fileName) throws Exception {
try {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));
OutputStream output = response.getOutputStream();
workbook.write(output);
output.flush();
workbook.close();
output.close();
} catch (Exception e) {
throw new IOException(e.getMessage());
}
}