列宽设置
如果要好看,只能每个属性字段都不手动设置,这个太麻烦了
直接类上标记列宽注解,这种方式比较简单
@ExcelIgnoreUnannotated @ColumnWidth(20) public class ContractExpenditureApplyOffsetTypeExportDto{}
效果
表头标题字体大小是否自动换行设置
参考下面的导出工具类
/** * easyexcel注解导出工具类 * @author zwh * @date 2021/3/4 16:44 **/ public class EasyExcelWriteExportUtils { /** * 注解导出工具类 * @param exportList * @param outFileName * @param response * @param isCloseExcel * @return */ public static ExcelWriter exportToResponse(List exportList, String outFileName, String sheetName, Class clazz, HttpServletResponse response, boolean isCloseExcel) { ExcelWriter excelWriter = null; try { // 头的策略 WriteCellStyle headWriteCellStyle = EasyExcelWriteExportUtils.buildHeadCellStyle(); HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, new ArrayList<WriteCellStyle>()); excelWriter = EasyExcelWriteExportUtils.getExcelWriter(outFileName, clazz, Arrays.asList(horizontalCellStyleStrategy), response); WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build(); excelWriter.write(exportList, writeSheet); } catch (Exception e) { e.printStackTrace(); } finally { if(isCloseExcel){ // 别忘记关闭流 if (excelWriter != null) { excelWriter.finish(); } } } if (isCloseExcel) { return null; } else { return excelWriter; } } /** * 根据输出文件名获取excelWriter类 * * @param outFileName * @param response */ public static ExcelWriter getExcelWriter(String outFileName, Class clazz, List<WriteHandler> writeHandlerList, HttpServletResponse response) throws IOException { ExcelWriter excelWriter = null; response.reset(); response.setContentType("application/octet-stream; charset=utf-8"); response.setHeader("Content-Disposition", "attachment; filename=" + EncodeUtils.encodeUrl(outFileName)); OutputStream out = response.getOutputStream(); //这里指定需要表头,因为model通常包含表信头息 if (writeHandlerList != null && !writeHandlerList.isEmpty()) { ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(out, clazz); for (WriteHandler writeHandler : writeHandlerList) { excelWriterBuilder.registerWriteHandler(writeHandler); } excelWriter = excelWriterBuilder.build(); } else { excelWriter = EasyExcelFactory.write(out, clazz).build(); } return excelWriter; } /** * Build head cell style * * @return */ public static WriteCellStyle buildHeadCellStyle() { // CellStyle headCellStyle = StyleUtil.buildHeadCellStyle(workbook, null); WriteCellStyle headWriteCellStyle = new WriteCellStyle(); headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); WriteFont headWriteFont = new WriteFont(); headWriteFont.setFontName("宋体"); headWriteFont.setFontHeightInPoints((short)12); headWriteFont.setBold(true); headWriteCellStyle.setWriteFont(headWriteFont); //自动换行 headWriteCellStyle.setWrapped(false); return headWriteCellStyle; } }
使用示例
EasyExcelWriteExportUtils.exportToResponse(listData, "合作费确认数据.xlsx", "合作费确认数据", ContractExpenditureApplyOffsetTypeExportDto.class, response, true);