1.引入依赖
<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>
2.创建一个excel导出对象并且在每一个属性上添加注解
3.编写接口
接口中传过来的参数可以认为是id列表只不过给封装成对象了(利用id找到数据然后封装进map中)
@NoToken
@ApiOperation("导出故障单")
@GetMapping("/excel")
public void excelMalfunction(MalfunctionExcelDTO dto, HttpServletRequest request,HttpServletResponse response) throws Exception{
List<MalfunctionExcelVO> retList = new ArrayList<>();
List<String> list = dto.getMalfunctionId();
for(int i = 0 ; i < list.size() ; i++){
MalfunctionExcelVO vo = new MalfunctionExcelVO();
MalfunctionDetailViewDO malfunctionDetailViewDO = malfunctionService.selectDetail(list.get(i));
vo.setStMalfunctionId(malfunctionDetailViewDO.getStMalfunctionId());
vo.setDtCreate(malfunctionDetailViewDO.getDtCreate());
vo.setStPersonName(malfunctionDetailViewDO.getStPersonName());
vo.setStSysName(malfunctionDetailViewDO.getStSysName());
vo.setStModuleName(malfunctionDetailViewDO.getStModuleName());
vo.setStMalfunctionDescribe(malfunctionDetailViewDO.getStAbnormalDescribe());
vo.setStMalfunctionSource(malfunctionDetailViewDO.getStMalfunctionSource());
vo.setStProblemCategory(malfunctionDetailViewDO.getStProblemCategory());
vo.setStEmergencyLevel(malfunctionDetailViewDO.getStEmergencyLevel());
vo.setStProcessState(malfunctionDetailViewDO.getStProcessState());
retList.add(vo);
}
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode( "11" + ".xlsx", "UTF-8"));
response.addHeader("Cache-Control", "no-cache");
Map<String, Object> map = new HashMap<>();
ExportParams params = new ExportParams("故障单导出表", "故障单导出表", ExcelType.HSSF);
map.put(NormalExcelConstants.DATA_LIST, retList);
map.put(NormalExcelConstants.CLASS, MalfunctionExcelVO.class);
map.put(NormalExcelConstants.PARAMS, params);
map.put(NormalExcelConstants.FILE_NAME, "malfunctionList");
PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
}
这种方式不需要模板,更加方便但是不能进行复杂的导出