@实现导出功能
导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
导出接口
@GetMapping("/export")
public void exportWarn(HttpServletResponse response, @RequestParam Map<String,Object> params) {
try {
//通过数据库查到的数据
List<SjWarnEntity> warnList = sjWarnService.exportWarn(params);
//定义导出格式
List<SjWarnExportDTO> resList = new ArrayList<>();
//把数据填入导出格式
for (SjWarnEntity warnEntity:warnList){
SjWarnExportDTO dto = new SjWarnExportDTO();
BeanUtil.copyProperties(warnEntity,dto);
dto.formatWarnType();
dto.formatValueType();
resList.add(dto);
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
//文件名
String fileName = URLEncoder.encode("告警明细.xlsx", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
EasyExcel.write(response.getOutputStream(), SjWarnExportDTO.class).sheet("明细").doWrite(resList);
} catch (Exception e){
logger.error("导出告警Excel异常",e);
}
}
@Data
public class SjWarnExportDTO {
private static final long serialVersionUID = 1L;
@ExcelProperty(value = "传感器编号",index = 0)
private String cgqId;
@ExcelProperty(value = "所属台区",index = 1)
private String areaName;
@ExcelProperty(value = "安装位置",index = 2)
private String address;
@ExcelProperty(value = "监测类型",index = 3)
private String valueType;
@ExcelProperty(value = "告警类型",index = 4)
private String warnType;
@ExcelProperty(value = "告警值",index = 5)
private String warnValue;
@ExcelProperty(value = "数据时间",index = 6)
private Date dataTime;
}