From b1ea876692238ceb68e6efc0b499ccaa41f23b4b Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 10 二月 2023 19:01:35 +0800
Subject: [PATCH] `1

---
 src/main/java/com/lf/server/helper/WordHelper.java |  160 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 157 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/WordHelper.java b/src/main/java/com/lf/server/helper/WordHelper.java
index ff87b12..fb365d6 100644
--- a/src/main/java/com/lf/server/helper/WordHelper.java
+++ b/src/main/java/com/lf/server/helper/WordHelper.java
@@ -3,6 +3,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.poi.xwpf.usermodel.*;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
 
 import java.io.*;
 import java.util.List;
@@ -38,6 +39,7 @@
             xwpfDocument.write(outputStream);
 
             outputStream.close();
+            inputStream.close();
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
         }
@@ -104,18 +106,24 @@
     /**
      * 鎻掑叆鏁版嵁
      */
-    private static void insertData(XWPFTable table,List<String[]> addList) {
+    private static void insertData(XWPFTable table, List<String[]> addList) {
+        XWPFTableRow oldRow = table.getRow(1);
         for (int i = 1; i < addList.size(); i++) {
             XWPFTableRow row = table.createRow();
+            row.setHeight(oldRow.getHeight());
         }
 
         List<XWPFTableRow> rowList = table.getRows();
         for (int i = 1; i < rowList.size(); i++) {
             XWPFTableRow xwpfTableRow = rowList.get(i);
+
             List<XWPFTableCell> tableCells = xwpfTableRow.getTableCells();
             for (int j = 0; j < tableCells.size(); j++) {
-                XWPFTableCell xwpfTableCell = tableCells.get(j);
-                xwpfTableCell.setText(addList.get(i - 1)[j]);
+                XWPFTableCell oldCell = oldRow.getTableCells().get(j);
+                XWPFTableCell newCell = tableCells.get(j);
+
+                //newCell.setText(addList.get(i - 1)[j]);
+                setCellText(oldCell, newCell, addList.get(i - 1)[j]);
             }
         }
     }
@@ -144,4 +152,150 @@
     public static boolean isReplacement(String text) {
         return text.contains("$");
     }
+
+    /**
+     * 澶嶅埗妯℃澘琛岀殑灞炴��
+     */
+    private static void setCellText(XWPFTableCell tmpCell, XWPFTableCell cell, String text) {
+        CTTc cttc2 = tmpCell.getCTTc();
+        CTTcPr ctPr2 = cttc2.getTcPr();
+        CTTc cttc = cell.getCTTc();
+        CTTcPr ctPr = cttc.addNewTcPr();
+        if (ctPr2.getTcW() != null) {
+            ctPr.addNewTcW().setW(ctPr2.getTcW().getW());
+        }
+        if (ctPr2.getVAlign() != null) {
+            ctPr.addNewVAlign().setVal(ctPr2.getVAlign().getVal());
+        }
+        if (ctPr2.getTcBorders() != null) {
+            ctPr.setTcBorders(ctPr2.getTcBorders());
+        }
+
+        XWPFParagraph tmpP = tmpCell.getParagraphs().get(0);
+        XWPFParagraph cellP = cell.getParagraphs().get(0);
+        XWPFRun tmpR = null;
+        if (tmpP.getRuns() != null && tmpP.getRuns().size() > 0) {
+            tmpR = tmpP.getRuns().get(0);
+        }
+        XWPFRun cellR = cellP.createRun();
+        cellR.setText(text);
+
+        // 澶嶅埗瀛椾綋淇℃伅
+        if (tmpR != null) {
+            if (!cellR.isBold()) {
+                cellR.setBold(tmpR.isBold());
+            }
+            cellR.setItalic(tmpR.isItalic());
+            cellR.setUnderline(tmpR.getUnderline());
+            cellR.setColor(tmpR.getColor());
+            cellR.setTextPosition(tmpR.getTextPosition());
+            if (tmpR.getFontSize() != -1) {
+                cellR.setFontSize(tmpR.getFontSize());
+            }
+            if (tmpR.getFontFamily() != null) {
+                cellR.setFontFamily(tmpR.getFontFamily());
+            }
+            if (tmpR.getCTR() != null) {
+                if (tmpR.getCTR().isSetRPr()) {
+                    CTRPr tmpRPr = tmpR.getCTR().getRPr();
+                    if (tmpRPr.isSetRFonts()) {
+                        CTFonts tmpFonts = tmpRPr.getRFonts();
+                        CTRPr cellRPr = cellR.getCTR().isSetRPr() ? cellR
+                                .getCTR().getRPr() : cellR.getCTR().addNewRPr();
+                        CTFonts cellFonts = cellRPr.isSetRFonts() ? cellRPr
+                                .getRFonts() : cellRPr.addNewRFonts();
+                        cellFonts.setAscii(tmpFonts.getAscii());
+                        cellFonts.setAsciiTheme(tmpFonts.getAsciiTheme());
+                        cellFonts.setCs(tmpFonts.getCs());
+                        cellFonts.setCstheme(tmpFonts.getCstheme());
+                        cellFonts.setEastAsia(tmpFonts.getEastAsia());
+                        cellFonts.setEastAsiaTheme(tmpFonts.getEastAsiaTheme());
+                        cellFonts.setHAnsi(tmpFonts.getHAnsi());
+                        cellFonts.setHAnsiTheme(tmpFonts.getHAnsiTheme());
+                    }
+                }
+            }
+
+        }
+
+        // 澶嶅埗娈佃惤淇℃伅
+        cellP.setAlignment(tmpP.getAlignment());
+        cellP.setVerticalAlignment(tmpP.getVerticalAlignment());
+        cellP.setBorderBetween(tmpP.getBorderBetween());
+        cellP.setBorderBottom(tmpP.getBorderBottom());
+        cellP.setBorderLeft(tmpP.getBorderLeft());
+        cellP.setBorderRight(tmpP.getBorderRight());
+        cellP.setBorderTop(tmpP.getBorderTop());
+        cellP.setPageBreak(tmpP.isPageBreak());
+        if (tmpP.getCTP() != null) {
+            if (tmpP.getCTP().getPPr() != null) {
+                CTPPr tmpPPr = tmpP.getCTP().getPPr();
+                CTPPr cellPPr = cellP.getCTP().getPPr() != null ? cellP.getCTP().getPPr() : cellP.getCTP().addNewPPr();
+
+                // 澶嶅埗娈佃惤闂磋窛淇℃伅
+                CTSpacing tmpSpacing = tmpPPr.getSpacing();
+                if (tmpSpacing != null) {
+                    CTSpacing cellSpacing = cellPPr.getSpacing() != null ? cellPPr
+                            .getSpacing() : cellPPr.addNewSpacing();
+                    if (tmpSpacing.getAfter() != null) {
+                        cellSpacing.setAfter(tmpSpacing.getAfter());
+                    }
+                    if (tmpSpacing.getAfterAutospacing() != null) {
+                        cellSpacing.setAfterAutospacing(tmpSpacing
+                                .getAfterAutospacing());
+                    }
+                    if (tmpSpacing.getAfterLines() != null) {
+                        cellSpacing.setAfterLines(tmpSpacing.getAfterLines());
+                    }
+                    if (tmpSpacing.getBefore() != null) {
+                        cellSpacing.setBefore(tmpSpacing.getBefore());
+                    }
+                    if (tmpSpacing.getBeforeAutospacing() != null) {
+                        cellSpacing.setBeforeAutospacing(tmpSpacing
+                                .getBeforeAutospacing());
+                    }
+                    if (tmpSpacing.getBeforeLines() != null) {
+                        cellSpacing.setBeforeLines(tmpSpacing.getBeforeLines());
+                    }
+                    if (tmpSpacing.getLine() != null) {
+                        cellSpacing.setLine(tmpSpacing.getLine());
+                    }
+                    if (tmpSpacing.getLineRule() != null) {
+                        cellSpacing.setLineRule(tmpSpacing.getLineRule());
+                    }
+                }
+
+                // 澶嶅埗娈佃惤缂╄繘淇℃伅
+                CTInd tmpInd = tmpPPr.getInd();
+                if (tmpInd != null) {
+                    CTInd cellInd = cellPPr.getInd() != null ? cellPPr.getInd()
+                            : cellPPr.addNewInd();
+                    if (tmpInd.getFirstLine() != null) {
+                        cellInd.setFirstLine(tmpInd.getFirstLine());
+                    }
+                    if (tmpInd.getFirstLineChars() != null) {
+                        cellInd.setFirstLineChars(tmpInd.getFirstLineChars());
+                    }
+                    if (tmpInd.getHanging() != null) {
+                        cellInd.setHanging(tmpInd.getHanging());
+                    }
+                    if (tmpInd.getHangingChars() != null) {
+                        cellInd.setHangingChars(tmpInd.getHangingChars());
+                    }
+                    if (tmpInd.getLeft() != null) {
+                        cellInd.setLeft(tmpInd.getLeft());
+                    }
+                    if (tmpInd.getLeftChars() != null) {
+                        cellInd.setLeftChars(tmpInd.getLeftChars());
+                    }
+                    if (tmpInd.getRight() != null) {
+                        cellInd.setRight(tmpInd.getRight());
+                    }
+                    if (tmpInd.getRightChars() != null) {
+                        cellInd.setRightChars(tmpInd.getRightChars());
+                    }
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.9.3