From df57cb713d705c9fa8b3b11db014eba89c630a90 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期三, 14 十月 2026 15:00:39 +0800
Subject: [PATCH] docs(交接): 记录Excel COM打不开部分生成件改用WPS KET.Application的坑与绕法
---
traffic-audit-server/src/main/java/com/trafficaudit/reportexport/layout/SummaryLayoutExpander.java | 43 ++++++++++++++++++++++++++++++++++---------
1 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/layout/SummaryLayoutExpander.java b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/layout/SummaryLayoutExpander.java
index 6d3b317..c9cd5a4 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/layout/SummaryLayoutExpander.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/reportexport/layout/SummaryLayoutExpander.java
@@ -264,23 +264,48 @@
return insertCol;
}
- /** 琛ㄥご琛岋紙0 鍩猴級锛氬惈銆屽勾+鏈堛�嶈〃澶村崟鍏冩牸鐨勮锛涜建閬撱�佽疆娓℃湁涓や釜鍧� 鈫� 涓よ銆� */
+ /**
+ * 琛ㄥご琛岋紙0 鍩猴級锛氳建閬撱�佽疆娓¤繖绫讳竴椤典袱涓潡鐨勬湁涓よ銆�
+ *
+ * <p>2026-10-12 浜屾淇锛氬厛鍙栥�屾湀浠借〃澶存牸鏈�澶氱殑閭d竴琛屻�嶄綔鍩哄噯锛屾妸瀹冪殑鏈堜唤鍒楀綋浣滄爣鍑嗗垪锛�
+ * 鍙湁杩欎簺鍒椾笂澶у崐鏄湀浠芥牸鐨勮鎵嶇畻琛ㄥご琛屻�傚墠鐗堝彧瑕佹眰銆屾暣琛� 鈮�2 涓湀浠芥牸銆嶏紝
+ * 浼氭妸鏁版嵁琛岄噷鎭板ソ钀芥垚鏃ユ湡搴忓垪鐨勬暟鍊煎綋鎴愯〃澶� 鈫� 鎵╁垪鏃舵妸鏈堜唤鏃ユ湡鍐欒繘鏁版嵁琛�
+ * 锛�2026-09 姣嶇増 ` 璐ц繍!S11`銆乣鍑虹!S6` 绛� 13 鏍艰鍐欐垚 46266锛夈��
+ */
private List<Integer> headerRowsOf(Sheet sh) {
- List<Integer> rows = new ArrayList<>();
- int lastRow = Math.min(sh.getLastRowNum(), sh.getFirstRowNum() + HEADER_SCAN_ROWS);
- for (int r = sh.getFirstRowNum(); r <= lastRow; r++) {
+ int first = sh.getFirstRowNum();
+ int lastRow = Math.min(sh.getLastRowNum(), first + HEADER_SCAN_ROWS);
+ List<Integer> base = new ArrayList<>();
+ for (int r = first; r <= lastRow; r++) {
Row row = sh.getRow(r);
if (row == null) continue;
- for (int c = row.getFirstCellNum(); c >= 0 && c < row.getLastCellNum(); c++) {
- if (yearMonthOf(row.getCell(c)) != null) {
- rows.add(r);
- break;
- }
+ List<Integer> cols = monthColsOf(row);
+ if (cols.size() > base.size()) base = cols;
+ }
+ List<Integer> rows = new ArrayList<>();
+ if (base.size() < 2) return rows;
+ int need = Math.max(2, (base.size() + 1) / 2);
+ for (int r = first; r <= lastRow; r++) {
+ Row row = sh.getRow(r);
+ if (row == null) continue;
+ int hit = 0;
+ for (int c : base) {
+ if (yearMonthOf(row.getCell(c)) != null) hit++;
}
+ if (hit >= need) rows.add(r);
}
return rows;
}
+ /** 琛屽唴鎵�鏈夈�屽勾+鏈堛�嶈〃澶存牸鐨勫垪鍙凤紙0 鍩猴級 */
+ private List<Integer> monthColsOf(Row row) {
+ List<Integer> cols = new ArrayList<>();
+ for (int c = row.getFirstCellNum(); c >= 0 && c < row.getLastCellNum(); c++) {
+ if (yearMonthOf(row.getCell(c)) != null) cols.add(c);
+ }
+ return cols;
+ }
+
private Map<Integer, Integer> monthCols(Sheet sh, int year) {
Map<Integer, Integer> cols = new LinkedHashMap<>();
int lastRow = Math.min(sh.getLastRowNum(), sh.getFirstRowNum() + HEADER_SCAN_ROWS);
--
Gitblit v1.9.1