【1】导出数据返回ResponseEntity
版本是3.1
@RequestMapping(value = "/export",method = {RequestMethod.POST, RequestMethod.GET})
public ResponseEntity<byte[]> export(HttpServletRequest request) throws UnsupportedEncodingException {List<FmInfo> allDataList = dmInfoService.list();ByteArrayOutputStream outputStream=new ByteArrayOutputStream();EasyExcel.write(outputStream, FmInfo.class).registerWriteHandler(new CustomCellWriteWidthConfig()).sheet("告警数据").doWrite(allDataList);//添加响应头HttpHeaders headers = new HttpHeaders();headers.add("Content-Disposition", "attachment;filename="+ FileUtils.setFileDownloadHeader(request, "告警数据.xlsx"));headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);HttpStatus statusCode = HttpStatus.OK;return new ResponseEntity<byte[]>(outputStream.toByteArray(), headers, statusCode);
}
【2】导出数据并设置表头字体颜色
版本是3.1
@Override
public void downLoad(HttpServletResponse response) {try {List<FmInfo> allDataList = dmInfoService.list();String fileName = "告警数据.xlsx";response.setCharacterEncoding("UTF-8");response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel");response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));//设置导出的头样式HorizontalCellStyleStrategy horizontalCellStyleStrategy = getHorizontalCellStyleStrategy();// 导出数据EasyExcel.write(response.getOutputStream(), FmInfo.class).registerWriteHandler(horizontalCellStyleStrategy).sheet("Sheet1").doWrite(allDataList);} catch (Exception e) {log.error("下载校验结果失败!",e);}
}private static HorizontalCellStyleStrategy getHorizontalCellStyleStrategy() {WriteCellStyle headWriteCellStyle = new WriteCellStyle();// 背景设置为黄色headWriteCellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());WriteFont headWriteFont = new WriteFont();headWriteFont.setFontHeightInPoints((short)15);headWriteCellStyle.setWriteFont(headWriteFont);HorizontalCellStyleStrategy horizontalCellStyleStrategy =new HorizontalCellStyleStrategy();horizontalCellStyleStrategy.setHeadWriteCellStyle(headWriteCellStyle);return horizontalCellStyleStrategy;
}
【3】导出时将数据写入两个sheet
版本3.1
@Override
public void downLoad(HttpServletResponse response) {try {List<FmInfo> allDataList1 = dmInfoService.list();List<FmInfo> allDataList2 = dmInfoService.list();String fileName = "告警数据.xlsx";response.setCharacterEncoding("UTF-8");response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel");response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));//设置导出的头样式HorizontalCellStyleStrategy horizontalCellStyleStrategy = getHorizontalCellStyleStrategy();ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), FmInfo.class).build();{WriteSheet writeSheet = EasyExcel.writerSheet(0,"sheet1").registerWriteHandler(horizontalCellStyleStrategy).build();excelWriter.write(allDataList1 , writeSheet);WriteSheet writeSheetTwo = EasyExcel.writerSheet(1,"sheet2").registerWriteHandler(horizontalCellStyleStrategy).build();excelWriter.write(allDataList2 , writeSheetTwo);}excelWriter.finish();} catch (Exception e) {log.error("下载校验结果失败!",e);}
}
【4】导出数据时自定义表头列
版本3.1
@Override
public void downLoad( HttpServletResponse response) {try {List<FmInfo> allDataList1 = dmInfoService.list();List<FmInfo> allDataList2 = dmInfoService.list();String fileName = "告警数据.xlsx";response.setCharacterEncoding("UTF-8");response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel");response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));//设置导出的头样式HorizontalCellStyleStrategy horizontalCellStyleStrategy = getHorizontalCellStyleStrategy();ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();{// 表头内容WriteSheet writeSheet = EasyExcel.writerSheet(0,"sheet1").registerWriteHandler(horizontalCellStyleStrategy).head(getHeaders("header3")).build();excelWriter.write(allDataList1 , writeSheet);WriteSheet writeSheetTwo = EasyExcel.writerSheet(1,"sheet2").registerWriteHandler(horizontalCellStyleStrategy).head(getHeaders("header4")).build();excelWriter.write(allDataList2 , writeSheetTwo);}excelWriter.finish();} catch (Exception e) {log.error(e.getMessage(), e);throw new CommonException("导出数据异常!");}
}private List<List<String>> getHeaders(String cellType) {List<List<String>> headers = new ArrayList<>();headers.add(Collections.singletonList("header1"));headers.add(Collections.singletonList("header2"));headers.add(Collections.singletonList(cellType));return headers;
}