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 ++++++++++++++++++++++++------------- aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java | 11 --- aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java | 2 3 files changed, 76 insertions(+), 50 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娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮� * diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java index 001df24..ce86fc5 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java @@ -46,7 +46,7 @@ /** * 瀵煎嚭鐒婄紳缁熻琛╒2鍒楄〃 */ - @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:export") + //@RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:export") @Log(title = "鐒婄紳缁熻琛╒2", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) throws IOException { diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java index 32599c0..ec82f44 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java @@ -229,14 +229,8 @@ //2. 鍒涘缓Excel宸ヤ綔绨� SXSSFWorkbook wb = new SXSSFWorkbook(500); - ExcelUtil<ApsWeldSeamStatisticsV2> excelUtil = new ExcelUtil<>(ApsWeldSeamStatisticsV2.class); - excelUtil.init(list, "鐒婄紳缁熻琛�", "鐒婄紳缁熻琛�", Excel.Type.EXPORT); - excelUtil.createWorkbook(); - excelUtil.createExcelField(); - - Map<String, CellStyle> cellStyleMap = excelUtil.createStyles(wb); - CellStyle titleStyle = cellStyleMap.get("header_WHITE_GREY_50_PERCENT"); - CellStyle dataStyle = cellStyleMap.get("data_CENTER_BLACK_WHITE_STRING_false"); + CellStyle titleStyle = ExcelUtil.getCommonHeaderStyle(wb); + CellStyle dataStyle =ExcelUtil.getDataCellStyle(wb); SXSSFSheet sheet = wb.createSheet("鐒婄紳缁熻琛�"); List<LinkedHashMap<String,String>> titleList= initRowTitle(); @@ -255,7 +249,6 @@ //5. 鏋勫缓鏁版嵁琛� LinkedHashMap<String, String> first = titleList.get(0); ArrayList<Map.Entry<String, String>> titles = new ArrayList<>(first.entrySet()); - List<String> stringFiledKeys=Arrays.asList("productionBase","isSatisfy"); for (int rowInx = 0; rowInx < list.size(); rowInx++) { SXSSFRow dataRow = sheet.createRow(rowInx + 2); ApsWeldSeamStatisticsV2 statistics = list.get(rowInx); -- Gitblit v1.9.3