From 8a93dffd5c7d37ef1e88d14cbeea4be254185fc8 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 7 Sep 2022 18:55:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=88=E6=8A=A5=E6=95=B4=E5=90=88=E5=AF=BC?= =?UTF-8?q?=E5=87=BA--word=E5=9B=BA=E5=AE=9A=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsMonthlyReportWriteEOServiceImpl.java | 2 +- .../jero/modules/report/util/WordUtil.java | 146 +++++++++++------- 2 files changed, 93 insertions(+), 55 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java index f0d6c667d..71f10fc1f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java @@ -494,7 +494,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl splitStr(String str){ + //检查参数是否合法 + if (null == str || str.equals("")) { + return new ArrayList<>(); + } + int length = 3; + int n = (str.length() + length - 1) / length; //获取整个字符串可以被切割成字符子串的个数 + List list = new ArrayList<>(); + for (int i = 0; i < n; i++) { + if (i < (n - 1)) { + list.add(str.substring(i * length, (i + 1) * length)) ; + } else { + list.add(str.substring(i * length)); + } + } + return list; + } + + /** + * 判断字符串是否完全由数字组成 + * @param str + * @return + */ + public boolean verifyFigure(String str){ + Pattern p = Pattern.compile("[0-9]*"); + Matcher m = p.matcher(str); + return m.matches(); + } + /** + * 判断字符串是否完全由字母组成 + * @param str + * @return + */ + public boolean verifyEn(String str){ + Pattern enPatten = Pattern.compile("^[a-zA-Z]*"); + Matcher enMatch = enPatten.matcher(str); + return enMatch.matches(); + } + /** + * 判断字符串是否完全由数字和字母组成 + * @param str + * @return + */ + public boolean verifyFigureAndEn(String str){ + Pattern figureAndEnPattern = Pattern.compile("[0-9a-zA-Z]{1,}"); + Matcher figureAndEnMatcher = figureAndEnPattern.matcher(str); + return figureAndEnMatcher.matches(); } /** @@ -553,6 +564,9 @@ public class WordUtil { //表格属性 CTTblPr tablePr = table.getCTTbl().addNewTblPr(); + //固定列宽(英文和数字的时候自动换行) + CTTblLayoutType ctTblLayoutType = tablePr.isSetTblLayout() ? tablePr.getTblLayout() : tablePr.addNewTblLayout(); + ctTblLayoutType.setType(STTblLayoutType.FIXED); //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 @@ -597,6 +611,9 @@ public class WordUtil { XWPFTable table = document.createTable(newOpinionTemplateEOList.size()+1, 4); //表格属性 CTTblPr tablePr = table.getCTTbl().addNewTblPr(); + //固定列宽(英文和数字的时候自动换行) + CTTblLayoutType ctTblLayoutType = tablePr.isSetTblLayout() ? tablePr.getTblLayout() : tablePr.addNewTblLayout(); + ctTblLayoutType.setType(STTblLayoutType.FIXED); //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 @@ -632,6 +649,9 @@ public class WordUtil { XWPFTable table = document.createTable(newStandardTemplateEOList.size()+1, 5); //表格属性 CTTblPr tablePr = table.getCTTbl().addNewTblPr(); + //固定列宽(英文和数字的时候自动换行) + CTTblLayoutType ctTblLayoutType = tablePr.isSetTblLayout() ? tablePr.getTblLayout() : tablePr.addNewTblLayout(); + ctTblLayoutType.setType(STTblLayoutType.FIXED); //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 @@ -809,11 +829,29 @@ public class WordUtil { ctTblWidth0.setW(BigInteger.valueOf(2000)); CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(5000)); + ctTblWidth1.setW(BigInteger.valueOf(6000)); + +// XWPFParagraph para = table.getRow(number).getCell(1).getParagraphs().get(0); +// XWPFRun run = para.createRun();//对某个段落设置格式 +// run.addBreak();//换行 table.getRow(number).getCell(0).setText(fieldName); table.getRow(number).getCell(1).setText(technologyTerritory); + } +// private static void setCell(XWPFTable table, int number, String fieldName,String technologyTerritory) { +// +// table.getRow(number).setHeight(500); +// CTTblWidth ctTblWidth0 = table.getRow(number).getCell(0).getCTTc().addNewTcPr().addNewTcW(); +// ctTblWidth0.setType(STTblWidth.DXA); +// ctTblWidth0.setW(BigInteger.valueOf(2000)); +// CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW(); +// ctTblWidth1.setType(STTblWidth.DXA); +// ctTblWidth1.setW(BigInteger.valueOf(5000)); +// +// table.getRow(number).getCell(0).setText(fieldName); +// table.getRow(number).getCell(1).setText(technologyTerritory); +// } // private static void setCell(XWPFTableRow tableRow, String fieldName,String technologyTerritory) { // // tableRow.setHeight(500);