From 09101577baa4b844e308238d1d4ac1972d660577 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 17 十二月 2025 16:47:22 +0800
Subject: [PATCH] 生成站点电路试验报告(天线)合并单元格
---
inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java | 150 +++++++++++++++++++++++++-------------------------
1 files changed, 75 insertions(+), 75 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 9f7dba1..b602c88 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
@@ -2209,81 +2209,81 @@
}
// 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂
String path = wordUrl + "/" + url;
-// try {
-// ZipSecureFile.setMinInflateRatio(0.0001);
-// FileInputStream stream = new FileInputStream(path);
-// XWPFDocument document = new XWPFDocument(stream);
-// List<XWPFTable> xwpfTables = document.getTables();
-// 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++) {
-// for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) {
-// if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) {
-// String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�");
-// if (set1.add(split[1])) {
-// Map<String, Integer> map = new HashMap<>();
-// map.put("sr", j);
-// map.put("sc", k);
-// map.put("er", j + 0);
-// map.put("ec", k + 0);
-// maps.put(split[1], map);
-// } else {
-// Map<String, Integer> map1 = maps.get(split[1]);
-// if (j == map1.get("sr")) {
-// map1.put("ec", map1.get("ec") + 1);
-// } else if (k == map1.get("sc")) {
-// map1.put("er", map1.get("er") + 1);
-// }
-// }
-// String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0];
-// xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
-// xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str);
-// xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
-// xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER);
-// }
-// }
-// }
-//
-// // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡
-// List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
-// entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
-//
-// // 鎸夌収椤哄簭娣诲姞杩涢泦鍚�
-// List<String> list = new ArrayList<>();
-// for (Map.Entry<String, Map<String, Integer>> entry : entries) {
-// list.add(entry.getKey());
-// }
-// /*List<String> list = new ArrayList<>();
-// for (String s : maps.keySet()) {
-// list.add(s);
-// }*/
-// for (int a = list.size() - 1; a >= 0; a--) {
-// Map<String, Integer> v = maps.get(list.get(a));
-// 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"));
-// } catch (Exception e) {
-// }
-// }
-// }
-// if (v.get("er") > v.get("sr")) {
-// try {
-// TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
-// } catch (Exception e) {
-// }
-// }
-// }
-// }
-// FileOutputStream fileOutputStream = new FileOutputStream(path);
-// document.write(fileOutputStream);
-// fileOutputStream.close();
-// } catch (FileNotFoundException e) {
-// throw new RuntimeException(e);
-// } catch (IOException e) {
-// throw new RuntimeException(e);
-// }
+ try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
+ FileInputStream stream = new FileInputStream(path);
+ XWPFDocument document = new XWPFDocument(stream);
+ List<XWPFTable> xwpfTables = document.getTables();
+ 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++) {
+ for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) {
+ if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) {
+ String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�");
+ if (set1.add(split[1])) {
+ Map<String, Integer> map = new HashMap<>();
+ map.put("sr", j);
+ map.put("sc", k);
+ map.put("er", j + 0);
+ map.put("ec", k + 0);
+ maps.put(split[1], map);
+ } else {
+ Map<String, Integer> map1 = maps.get(split[1]);
+ if (j == map1.get("sr")) {
+ map1.put("ec", map1.get("ec") + 1);
+ } else if (k == map1.get("sc")) {
+ map1.put("er", map1.get("er") + 1);
+ }
+ }
+ String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0];
+ xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
+ xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str);
+ xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
+ xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER);
+ }
+ }
+ }
+
+ // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡
+ List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
+ entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
+
+ // 鎸夌収椤哄簭娣诲姞杩涢泦鍚�
+ List<String> list = new ArrayList<>();
+ for (Map.Entry<String, Map<String, Integer>> entry : entries) {
+ list.add(entry.getKey());
+ }
+ /*List<String> list = new ArrayList<>();
+ for (String s : maps.keySet()) {
+ list.add(s);
+ }*/
+ for (int a = list.size() - 1; a >= 0; a--) {
+ Map<String, Integer> v = maps.get(list.get(a));
+ 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"));
+ } catch (Exception e) {
+ }
+ }
+ }
+ if (v.get("er") > v.get("sr")) {
+ try {
+ TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+ FileOutputStream fileOutputStream = new FileOutputStream(path);
+ document.write(fileOutputStream);
+ fileOutputStream.close();
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
InsOrderFile insOrderFile = new InsOrderFile();
insOrderFile.setInsOrderId(insOrderState.getInsOrderId());
insOrderFile.setInsSampleId(insOrderState.getInsSampleId());
--
Gitblit v1.9.3