From d0b51c6d6f2b7a530c0557b6279cc6dfced223cf Mon Sep 17 00:00:00 2001
From: zhubaomin <470473919@qq.com>
Date: 星期日, 27 四月 2025 19:01:04 +0800
Subject: [PATCH] 各轮灌组开阀时间提前10分钟,第一组除外,改为配置文件设置
---
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/CellWriteHandler.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/CellWriteHandler.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/CellWriteHandler.java
new file mode 100644
index 0000000..f022b96
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/CellWriteHandler.java
@@ -0,0 +1,141 @@
+package com.dy.pipIrrGlobal.excel;
+
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.alibaba.excel.write.style.AbstractVerticalCellStyleStrategy;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.DefaultIndexedColorMap;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFColor;
+import org.springframework.util.PropertyPlaceholderHelper;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Properties;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-12 11:40
+ * @LastEditTime 2024-10-12 11:40
+ * @Description 鎬昏处琛ㄦ牸璁剧疆
+ */
+public class CellWriteHandler extends AbstractVerticalCellStyleStrategy {
+ private String title;
+
+ PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("${", "}");
+
+ public CellWriteHandler(String title) {
+ this.title = title;
+ }
+
+ // 鍔ㄦ�佸鍏ユ爣棰�
+ @Override
+ public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+ Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+ if (head != null) {
+ List<String> headNameList = head.getHeadNameList();
+ if (CollectionUtils.isNotEmpty(headNameList)) {
+ Properties properties = new Properties();
+ properties.setProperty("title", title);
+ headNameList.replaceAll(value -> propertyPlaceholderHelper.replacePlaceholders(value, properties));
+ }
+ }
+ }
+
+ // 璁剧疆鏍囬鏍峰紡锛屽寘鍚瓧浣撱�佽儗鏅�
+ @Override
+ protected void setHeadCellStyle(CellWriteHandlerContext context) {
+ // 鑾峰彇鍜屽垱寤篊ellStyle
+ WriteCellData<?> cellData = context.getFirstCellData();
+ CellStyle originCellStyle = cellData.getOriginCellStyle();
+ Cell cell = context.getCell();
+
+ if (Objects.isNull(originCellStyle)) {
+ originCellStyle = context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
+ }
+
+ ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255), new DefaultIndexedColorMap()));
+
+ // 璁剧疆鎸囧畾鍒楄儗鏅壊
+ //if(cell.getColumnIndex() == 10
+ //) {
+ // ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(237, 237, 237), new DefaultIndexedColorMap()));
+ //}
+
+ // 璁剧疆鑳屾櫙棰滆壊
+ originCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ // 鐢变簬鍦‵illStyleCellWriteHandler锛屼細鎶奜riginCellStyle鍜學riteCellStyle鍚堝苟锛屼細浠riteCellStyle鏍峰紡涓轰富锛屾墍鏈夊繀椤绘妸WriteCellStyle璁剧疆鐨勮儗鏅壊娓呯┖
+ // 鍏蜂綋鍚堝苟瑙勫垯鐪媁riteWorkbookHolder.createCellStyle鏂规硶
+ WriteCellStyle writeCellStyle = cellData.getWriteCellStyle();
+ writeCellStyle.setFillForegroundColor(null);
+ // 蹇呴』璁剧疆OriginCellStyle
+ cellData.setOriginCellStyle(originCellStyle);
+
+ WriteFont headWriteFont = new WriteFont();
+ if (cell.getRowIndex() == 0) {
+ headWriteFont.setFontHeightInPoints((short)14);
+ headWriteFont.setFontName("Arial");
+ headWriteFont.setBold(true);
+ }else if (cell.getRowIndex() == 1) {
+ headWriteFont.setFontHeightInPoints((short)12);
+ headWriteFont.setFontName("Arial");
+ headWriteFont.setBold(false);
+ }
+
+ cellData.getWriteCellStyle().setWriteFont(headWriteFont);
+ }
+
+ // 璁剧疆鍐呭鍏ず銆佸唴瀹瑰瓧浣撴牱寮忋�佽儗鏅牱寮�
+ @Override
+ protected void setContentCellStyle(CellWriteHandlerContext context) {
+
+ // 鑾峰彇鍜屽垱寤篊ellStyle
+ WriteCellData<?> cellData = context.getFirstCellData();
+ CellStyle originCellStyle = cellData.getOriginCellStyle();
+ Cell cell = context.getCell();
+
+ if (Objects.isNull(originCellStyle)) {
+ originCellStyle = context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
+ }
+ // 璁剧疆鑳屾櫙棰滆壊
+ ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 192, 0), new DefaultIndexedColorMap()));
+ //System.out.println("Go to row: " + context.getCell().getRowIndex() + ", column: " + context.getCell().getColumnIndex());
+
+ if (cell.getRowIndex() >= 2){
+ ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(237, 237, 237), new DefaultIndexedColorMap()));
+
+ //if (cell.getColumnIndex() == 10){
+ // int actualCellRowNum = context.getCell().getRowIndex() + 1;
+ // context.getCell().setCellFormula("I" + actualCellRowNum +"+J" + actualCellRowNum);
+ //}
+ }
+
+ originCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ originCellStyle.setBorderLeft(BorderStyle.THIN); //宸﹁竟妗嗙嚎
+ originCellStyle.setBorderTop(BorderStyle.THIN); //椤堕儴妗嗙嚎
+ originCellStyle.setBorderRight(BorderStyle.THIN); //鍙宠竟妗嗙嚎
+ originCellStyle.setBorderBottom(BorderStyle.THIN); //搴曢儴妗嗙嚎
+ // 鐢变簬鍦‵illStyleCellWriteHandler锛屼細鎶奜riginCellStyle鍜學riteCellStyle鍚堝苟锛屼細浠riteCellStyle鏍峰紡涓轰富锛屾墍鏈夊繀椤绘妸WriteCellStyle璁剧疆鐨勮儗鏅壊娓呯┖
+ // 鍏蜂綋鍚堝苟瑙勫垯鐪媁riteWorkbookHolder.createCellStyle鏂规硶
+ WriteCellStyle writeCellStyle = cellData.getWriteCellStyle();
+ writeCellStyle.setFillForegroundColor(null);
+ writeCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ writeCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 蹇呴』璁剧疆OriginCellStyle
+ cellData.setOriginCellStyle(originCellStyle);
+
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short)12);
+ headWriteFont.setFontName("瀹嬩綋");
+ headWriteFont.setBold(false);
+ headWriteFont.setColor(IndexedColors.BLACK.getIndex());
+
+ cellData.getWriteCellStyle().setWriteFont(headWriteFont);
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0