From d589bf94e8f1863336d23fdd951049622b64db68 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 22 十一月 2024 16:36:43 +0800 Subject: [PATCH] csv文件调整 --- inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java | 87 ++++++++++++++++++++++++------------------- 1 files changed, 49 insertions(+), 38 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java index 3a383e1..50dabb3 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java @@ -25,6 +25,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; + import javax.annotation.Resource; import java.io.*; import java.nio.file.Files; @@ -1486,22 +1487,13 @@ lable.getAndIncrement(); }); }); - String url; - try { - ZipSecureFile.setMinInflateRatio(0.0001); - InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); - File file = File.createTempFile("temp", ".tmp"); - OutputStream outputStream = new FileOutputStream(file); - IOUtils.copy(inputStream, outputStream); - url = file.getAbsolutePath(); - } catch (FileNotFoundException e) { - throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�"); - } catch (IOException e) { - throw new RuntimeException(e); - } + + ZipSecureFile.setMinInflateRatio(0.0001); + InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); + ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); - XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap<String, Object>() {{ put("title", title); put("tables", tables); @@ -1519,7 +1511,7 @@ FileInputStream stream = new FileInputStream(path); XWPFDocument document = new XWPFDocument(stream); List<XWPFTable> xwpfTables = document.getTables(); - for (int i = 1; i < xwpfTables.size(); i++) { + for (int i = 0; i < xwpfTables.size(); i++) { Set<String> set1 = new HashSet<>(); Map<String, Map<String, Integer>> maps = new HashMap<>(); for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { @@ -1740,8 +1732,15 @@ CellRenderData cellRenderData = new CellRenderData(); List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); + ParagraphStyle paragraphStyle = new ParagraphStyle(); + paragraphStyle.setAlign(ParagraphAlignment.CENTER); + paragraphRenderData.setParagraphStyle(paragraphStyle); List<RenderData> renderData = new ArrayList<>(); TextRenderData textRenderData = new TextRenderData(); + Style style = new Style(); + style.setFontFamily("瀹嬩綋"); + style.setColor("000000"); + textRenderData.setStyle(style); CTTcPr tcPr = cell.get(j).getCTTc().getTcPr(); if (tcPr != null) { //鍚堝苟鍒� @@ -1774,9 +1773,9 @@ text = row.get(index).getCell(j).getText(); index--; } - if (text.equals("鍚堟牸")|| text.equals("涓嶅悎鏍�")){ + if (text.equals("鍚堟牸") || text.equals("涓嶅悎鏍�")) { textRenderData.setText(text + "鈭�25" + aa + j); - }else { + } else { textRenderData.setText(text + "鈭�22" + aa + j); } } @@ -2082,20 +2081,8 @@ tables4.add(table4); } } - - String url; - try { - ZipSecureFile.setMinInflateRatio(0.0001); - InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); - File file = File.createTempFile("temp", ".tmp"); - OutputStream outputStream = new FileOutputStream(file); - IOUtils.copy(inputStream, outputStream); - url = file.getAbsolutePath(); - } catch (FileNotFoundException e) { - throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�"); - } catch (IOException e) { - throw new RuntimeException(e); - } + ZipSecureFile.setMinInflateRatio(0.0001); + InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); StringBuilder standardMethod2 = new StringBuilder(); for (String s : standardMethod) { standardMethod2.append("锛沑n").append(s); @@ -2131,7 +2118,9 @@ List<Map<String, String>> finalDeviceList = deviceList; List<Map<String, String>> sampleList = insSampleMapper.selectSampleList(orderId); Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery() - .eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId(); + .eq(InsSampleUser::getInsSampleId, orderId) + .eq(InsSampleUser::getState,0) + .last("limit 1")).getUserId(); String signatureUrl; try { signatureUrl = userMapper.selectById(userId).getSignatureUrl(); @@ -2173,7 +2162,7 @@ title3 = "杈愬皠鏂瑰悜鍥惧弬鏁�"; } String finalTitle = title3; - XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap<String, Object>() {{ put("order", insOrder); put("report", insReport); @@ -2275,17 +2264,17 @@ for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { if (v.get("ec") > v.get("sc")) { try { - TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); + mergeCellsHorizontally(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); +// TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); } catch (Exception e) { - System.out.println("鍚堝苟鍑洪敊"); } } } if (v.get("er") > v.get("sr")) { try { - TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); + mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); +// TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); } catch (Exception e) { - System.out.println("鍚堝苟鍑洪敊"); } } } @@ -3729,4 +3718,26 @@ }); }); } -} + + // 姘村钩鍚堝苟鍗曞厓鏍� + private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { + for (int i = fromCol; i <= toCol; i++) { + if (i == fromCol) { + table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART); + } else { + table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE); + } + } + } + + // 鍨傜洿鍚堝苟鍗曞厓鏍� + private static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) { + for (int i = fromRow; i <= toRow; i++) { + if (i == fromRow) { + table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); + } else { + table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3