<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
导出单sheet页
公共方法
/**
* @param fileName 表格文件名称
* @param title 表头名称
* @param sheet0Name sheet页名称 只设置第一页
* @param pojoClass 导出实体类名称
* @param dataSet 导出数据集合
* @throws IOException
*/
public static void export(String fileName, String title, String sheet0Name, Class<?> pojoClass,
Collection<?> dataSet, HttpServletResponse response) throws IOException {
ExportParams exportParams = new ExportParams(title, sheet0Name);
Workbook workbook = ExcelExportUtil.exportBigExcel(exportParams, pojoClass, dataSet);
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("file-name", URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Access-Control-Expose-Headers", "file-name");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream());
ExcelExportUtil.closeExportBigExcel();
}
调用
/**
*
*
* @param request
* @return
*/
@PostMapping("/exportList")
public void exportList(@RequestBody BusinessHexiaoStateRequest request, HttpServletResponse response) {
ExcelUtils.export("明细数据.xlsx", "明细数据", "明细数据", BusinessExcel.class, data, response);
}
实体类
@Data
public class BusinessExcel implements Serializable {
@Excel(name = "销售额",type = 10, orderNum = "1", width = 10)
private BigDecimal orderAmount;
@Excel(name = "支付订单数", type = 10, orderNum = "2", width = 10)
private Integer orderNum;
}
导出多个sheet页
方法
/**
* 同一个excle 导出多个sheet页
*
* @param fileName excel名称
* @param map 数据
* @param response
* @throws IOException
*/
public static void exportSheet(String fileName, List<Map<String, Object>> map, HttpServletResponse response) throws IOException {
Workbook workbook = ExcelExportUtil.exportExcel(map, ExcelType.HSSF);
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("file-name", URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Access-Control-Expose-Headers", "file-name");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream());
ExcelExportUtil.closeExportBigExcel();
}
调用
/**
*
*
* @param request
* @return
*/
@PostMapping("/exportList")
public void exportList(@RequestBody BusinessHexiaoStateRequest request, HttpServletResponse response) {
List<Map<String, Object>> map = new ArrayList<>();
Map<String, Object> data = null;
for (int i = 0; i < siteIdList.length; i++) {
data = new HashMap<>();
request.setSiteId(siteIdList[i]);
ExportParams exportParams = new ExportParams("过期数据", siteIdList[i]);
data.put("title", exportParams);
List<BusinessSiteHexiaoExcel> excelData = businessHexiaoCollectService.getSiteHexiaoList(request);
data.put("entity", BusinessSiteHexiaoExcel.class);
data.put("data", excelData);
map.add(data);
}
//合计数据
data = new HashMap<>();
request.setSiteId(null);
ExportParams exportParams = new ExportParams("过期数据", "合计");
data.put("title", exportParams);
List<BusinessSiteHexiaoExcel> excelData = businessHexiaoCollectService.getSiteHexiaoList(request);
data.put("entity", BusinessSiteHexiaoExcel.class);
data.put("data", excelData);
map.add(data);
ExcelUtils.exportSheet("过期数据.xlsx", map, response);
}
实体类
@Data
public class BusinessSiteHexiaoExcel implements Serializable {
@Excel(name = "商品分类", orderNum = "1", width = 20)
private String name;
@Excel(name = "销售额",type = 10, orderNum = "2", width = 15)
private BigDecimal orderAmount;
@Excel(name = "过期交易额", type = 10,orderNum = "3", width = 15)
private BigDecimal expOrderAmount;
}