From 45076ccef269d337e7c6f6755bf096df250ebdd8 Mon Sep 17 00:00:00 2001
From: zhijie <1003392067@qq.com>
Date: 星期一, 18 四月 2022 19:52:30 +0800
Subject: [PATCH] JAQ团队成员列表优化
---
src/main/java/com/ots/common/utils/poi/WordUtil.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++----------
src/main/java/com/ots/common/enums/TableEnum.java | 2 +-
2 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ots/common/enums/TableEnum.java b/src/main/java/com/ots/common/enums/TableEnum.java
index cce71b1..3f54890 100644
--- a/src/main/java/com/ots/common/enums/TableEnum.java
+++ b/src/main/java/com/ots/common/enums/TableEnum.java
@@ -16,7 +16,7 @@
table2(1,"琛�2"),
table3(2,"琛�3"),
table4(4,"琛�4"),
- table4Children(5,"琛�4瀛愰泦鍚�");
+ table4Children(99,"琛�4瀛愰泦鍚�");
private Integer code;
private String name;
diff --git a/src/main/java/com/ots/common/utils/poi/WordUtil.java b/src/main/java/com/ots/common/utils/poi/WordUtil.java
index 9cc37ee..9f6d490 100644
--- a/src/main/java/com/ots/common/utils/poi/WordUtil.java
+++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java
@@ -817,8 +817,7 @@
try {
run.setText(changeValue(run.toString(), textMap, run, paragraph, document, runPosition), 0);
} catch (Exception e) {
-
-
+ e.printStackTrace();
}
}
@@ -1113,10 +1112,16 @@
} else {
String keyTemp = textSet.getKey();
String keyValue = Objects.isNull(textSet.getValue()) ? "" : textSet.getValue().toString();
- if (StringUtils.contains(keyValue, "%line-feed%")) {
-
- String[] keyValues = keyValue.split("%line-feed%");
- runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document);
+ if (StringUtils.contains(keyValue, "%line-feed%") || StringUtils.contains(keyValue, "%table-line-feed%")) {
+
+ //琛ㄦ牸閲岀殑鎹㈣ 鐗规畩澶勭悊 鍥犱负娌℃湁娈佃惤
+ if(StringUtils.contains(keyValue, "table")){
+ String[] keyValues = keyValue.split("%table-line-feed%");
+ runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,1);
+ }else{
+ String[] keyValues = keyValue.split("%line-feed%");
+ runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,0);
+ }
}
log.info("ChangeValue鐨刱ey鍊硷細" + key + " ChangeValue鐨剉alue鍊硷細" + keyValue);
runValue = runValue.replaceAll(key, keyValue);
@@ -1610,10 +1615,14 @@
ctpPr.addNewSectPr();
}
- private static String delDynList(String placeholder, List obj, XWPFParagraph oldParagraph, XWPFDocument templateDoc) {
+
+ private static String delDynList(String placeholder, List obj, XWPFParagraph oldParagraph, XWPFDocument templateDoc,Integer flag) {
String placeholderValue = placeholder;
List dataList = obj;
- Collections.reverse(dataList);
+ //鏅�氭崲琛岄檷搴忓鐞� 琛ㄦ牸鎹㈣鏃犻渶闄嶅簭
+ if(flag == 0){
+ Collections.reverse(dataList);
+ }
XWPFRun oldRun = oldParagraph.getRuns().size() > 0 ? oldParagraph.getRuns().get(0) : null;
Boolean isBold = Objects.nonNull(oldRun) ? oldRun.isBold() : false;
for (int i = 0, size = dataList.size(); i < size; i++) {
@@ -1622,7 +1631,13 @@
if (i == 0) {
placeholderValue = String.valueOf(text);
} else {
- XWPFParagraph paragraph = createParagraph(oldParagraph, templateDoc, oldRun, isBold, String.valueOf(text));
+ XWPFParagraph paragraph = null;
+ if(flag == 0){
+ paragraph = createParagraph(oldParagraph, templateDoc, oldRun, isBold, String.valueOf(text));
+ }else if(flag == 1){
+ paragraph = createTableRun(oldParagraph, oldRun, isBold, String.valueOf(text));
+ }
+
if (paragraph != null) {
oldParagraph = paragraph;
}
@@ -1640,8 +1655,31 @@
copyParagraph(oldParagraph, newPar, oldRun, isBold, texts);
return newPar;
}
+
+ /**
+ * 鍒涘缓table琛ㄦ牸鎹㈣ 娈佃惤run
+ * @param oldParagraph
+ * @param oldRun
+ * @param isBold
+ * @param texts
+ * @return
+ */
+ public static XWPFParagraph createTableRun(XWPFParagraph oldParagraph,XWPFRun oldRun, boolean isBold, String... texts) {
+
+ XWPFRun run = oldParagraph.createRun();
+ run.addBreak();
+ run.setText(texts[0]);
+ run.setFontFamily(oldRun.getFontFamily());
+ int fontSize = oldRun.getFontSize();
+ run.setFontSize((fontSize == -1) ? DEFAULT_FONT_SIZE : fontSize);
+ run.setBold(isBold);
+ run.setItalic(oldRun.isItalic());
+ run.setColor(oldRun.getColor());
+
+ return null;
+ }
- ;
+
private static void copyParagraph(XWPFParagraph sourcePar, XWPFParagraph targetPar, XWPFRun oldRun, boolean isBold, String... texts) {
targetPar.setAlignment(sourcePar.getAlignment());
targetPar.setVerticalAlignment(sourcePar.getVerticalAlignment());
--
Gitblit v1.9.1