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 +++++++++++++++++++++++++++++++++++++++ data/ts.sql | 4 pom.xml | 16 ---- src/main/java/com/lf/server/service/sys/ReportService.java | 3 4 files changed, 161 insertions(+), 22 deletions(-) diff --git a/data/ts.sql b/data/ts.sql index ebf8427..6cf7afe 100644 --- a/data/ts.sql +++ b/data/ts.sql @@ -146,8 +146,8 @@ group by modular1,modular2 order by modular1 desc,modular2; - - +select * from lf.sys_operate where modular2 = '' +delete from lf.sys_operate where modular2 = '' diff --git a/pom.xml b/pom.xml index 4ce0b1c..1e20d79 100644 --- a/pom.xml +++ b/pom.xml @@ -247,22 +247,6 @@ <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.16</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-excelant</artifactId> - <version>3.16</version> - </dependency> - <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-examples</artifactId> - <version>3.16</version> - </dependency> - <dependency> - <groupId>org.apache.xmlbeans</groupId> - <artifactId>xmlbeans</artifactId> - <version>2.6.0</version> </dependency> </dependencies> 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()); + } + } + } + } + } } diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java index fcce48c..2016d46 100644 --- a/src/main/java/com/lf/server/service/sys/ReportService.java +++ b/src/main/java/com/lf/server/service/sys/ReportService.java @@ -98,12 +98,13 @@ return; } + int rows = 1; String inputFile = "D:\\LF\\鐢ㄦ埛娴侀噺缁熻.docx"; String outPutFile = "D:\\LF\\鐢ㄦ埛娴侀噺缁熻_new.docx"; ArrayList<String[]> addList = new ArrayList<>(); for (CountEntity ce : list) { - String[] strs = new String[]{ce.getM1(), ce.getM2(), ce.getCount().toString()}; + String[] strs = new String[]{"" + rows++, ce.getM1(), ce.getM2(), ce.getCount().toString()}; addList.add(strs); } -- Gitblit v1.9.3