/**
* excel导出
*
* @param reportNo
* @param leftTabHead
* @param topTabHeadCol
* @param topTabHeadText
* @return
*/
@GetMapping("/exportEvent")
public void exportEvent(HttpServletResponse response,EventDto event) {
/**
* 查询excel列表
*/
JSONObject data = eventService.queryEventExcelList(event);
/**
* 查询报表数据集
*/
List<Map<String, Object>> reports = (List<Map<String, Object>>) data.get("list");
ExcelDTO excelDTO = buildExcelDTO(reports);
excelDTO.setTitles(EVENT_HEADER);
try {
ExcelUtils.exportExcel(response,"事件管理报表", excelDTO);
} catch (Exception e) {
log.error("invoke ExcelUtils.exportExcel fail",e);
}
}
/**
* 构建excel的dto
* @param reports
* @return
*/
private ExcelDTO buildExcelDTO(List<Map<String, Object>> reports) {
List<List<Object>> paramList = new ArrayList<>();
for (Map<String, Object> map : reports) {
List<Object> cells = new ArrayList<>();
//取excel行记录的值
for (int j = 0; j < EVENT_HEADER_COL.length; j++) {
if(null!=map.get(EVENT_HEADER_COL[j])) {
cells.add(map.get(EVENT_HEADER_COL[j]) + "");
}else {
cells.add("");
}
}
paramList.add(cells);
}
ExcelDTO excelDTO = new ExcelDTO();
excelDTO.setRows(paramList);
excelDTO.setSheetName(EventConstants.EVENT_URL_MAPPING_SHEET_NAME);
excelDTO.setTitles(EventConstants.EVENT_URL_MAPPING_TITLES);
return excelDTO;
}