From dec8951aae400e54f6ee83a8f95867dba9da8af1 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期五, 23 五月 2025 17:17:33 +0800 Subject: [PATCH] [钣金计划大表] 优化:焊缝统计导出Excel样式 --- aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java | 113 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 73 insertions(+), 40 deletions(-) diff --git a/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java b/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java index 6f62c0a..6238fdd 100644 --- a/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java +++ b/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java @@ -692,33 +692,10 @@ { // 鍐欏叆鍚勬潯璁板綍,姣忔潯璁板綍瀵瑰簲excel琛ㄤ腑鐨勪竴琛� Map<String, CellStyle> styles = new HashMap<String, CellStyle>(); - CellStyle style = wb.createCellStyle(); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - Font titleFont = wb.createFont(); - titleFont.setFontName("Arial"); - titleFont.setFontHeightInPoints((short) 16); - titleFont.setBold(true); - style.setFont(titleFont); - DataFormat dataFormat = wb.createDataFormat(); - style.setDataFormat(dataFormat.getFormat("@")); + CellStyle style = getTitleCellStyle(wb); styles.put("title", style); - style = wb.createCellStyle(); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setBorderRight(BorderStyle.THIN); - style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderLeft(BorderStyle.THIN); - style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderTop(BorderStyle.THIN); - style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - style.setBorderBottom(BorderStyle.THIN); - style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); - Font dataFont = wb.createFont(); - dataFont.setFontName("Arial"); - dataFont.setFontHeightInPoints((short) 10); - style.setFont(dataFont); + style = getDataCellStyle(wb); styles.put("data", style); style = wb.createCellStyle(); @@ -737,6 +714,40 @@ return styles; } + public static CellStyle getTitleCellStyle(Workbook wb) { + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + return style; + } + + public static CellStyle getDataCellStyle(Workbook wb) { + CellStyle style; + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + return style; + } + /** * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸澶存牱寮� * @@ -752,27 +763,49 @@ String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); if (!headerStyles.containsKey(key)) { - CellStyle style = wb.createCellStyle(); - style.cloneStyleFrom(styles.get("data")); - style.setAlignment(HorizontalAlignment.CENTER); - style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setFillForegroundColor(excel.headerBackgroundColor().index); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - Font headerFont = wb.createFont(); - headerFont.setFontName("Arial"); - headerFont.setFontHeightInPoints((short) 10); - headerFont.setBold(true); - headerFont.setColor(excel.headerColor().index); - style.setFont(headerFont); - // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡 - DataFormat dataFormat = wb.createDataFormat(); - style.setDataFormat(dataFormat.getFormat("@")); + CellStyle style = getHeaderStyle(wb, excel); headerStyles.put(key, style); } } return headerStyles; } + private static CellStyle getHeaderStyle(Workbook wb, Excel excel) { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(getDataCellStyle(wb)); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡 + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + return style; + } + public static CellStyle getCommonHeaderStyle(Workbook wb) { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(getDataCellStyle(wb)); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor( IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡 + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + return style; + } /** * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮� * -- Gitblit v1.9.3