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 | 62 +++++++++++++++++++++++++----- 1 files changed, 51 insertions(+), 11 deletions(-) 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 3ab498f..9f6d490 100644 --- a/src/main/java/com/ots/common/utils/poi/WordUtil.java +++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java @@ -307,7 +307,9 @@ log.info("琛ㄨ鏁�:{}",table.getRows().size()); log.info("琛ㄦ牸鏁版嵁锛�" + table.getText()); //澧炲姞琛ㄦ牸鎴栬�呮笡灏戣〃鏍� - addOrDelTableRow(table,i,textMap); + if (Objects.equals(textMap.get("sendEmailFileName"), ReportTypeEnum.JAQ.getCode())) { + addOrDelTableRow(table,i,textMap); + } if (checkText(table.getText())) { List<XWPFTableRow> rows = table.getRows(); @@ -815,8 +817,7 @@ try { run.setText(changeValue(run.toString(), textMap, run, paragraph, document, runPosition), 0); } catch (Exception e) { - - + e.printStackTrace(); } } @@ -1111,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); @@ -1608,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++) { @@ -1620,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; } @@ -1638,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