From ca4b62abd2560b6dcffbf3ff43da1b04427b494b Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期二, 20 一月 2026 12:36:47 +0800
Subject: [PATCH] 增加了签名和注解
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtilManySheetSecond.java | 71 +++++++++++++++++++++++++++++++++--
1 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtilManySheetSecond.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtilManySheetSecond.java
index e50b657..1268870 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtilManySheetSecond.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtilManySheetSecond.java
@@ -347,7 +347,7 @@
printSetup.setLandscape(false); // 绾靛悜鎵撳嵃
sheet.setMargin(Sheet.LeftMargin, 1.04);
sheet.setMargin(Sheet.RightMargin, 1.04);
- sheet.setMargin(Sheet.TopMargin, 0.97);
+ sheet.setMargin(Sheet.TopMargin, 1.18);
sheet.setMargin(Sheet.BottomMargin, 0.97);
//鎷垮埌鍥剧墖
// 鍒涘缓鍗曞厓鏍煎苟娣诲姞鍥剧墖
@@ -419,6 +419,8 @@
System.out.println(declaredFields.length);
int i = 0;
for (Field field : declaredFields) {
+ if(i==9)
+ break;
// 璁剧疆瀛楁鐨勮闂潈闄愶紝浠ヤ究浜庤闂鏈夊瓧娈�
field.setAccessible(true);
@@ -556,7 +558,7 @@
// 鏉″舰鐮佸眳涓笖涓嶈秴鍑虹浜屼釜鏍煎瓙
// 璋冩暣缁撴潫鍒楃储寮曞拰浣嶇疆鍙傛暟
// 澧炲姞dx1鍊硷紝浣挎潯褰㈢爜鏁翠綋鍚戝彸绉诲姩
- ClientAnchor anchor1 = new HSSFClientAnchor(660, 0, 900, 60, (short) 0, 9, (short) 1, 10);
+ ClientAnchor anchor1 = new HSSFClientAnchor(537, 0, 788, 245, (short) 0, 9, (short) 1, 9);
// 璁剧疆鍥剧墖浣嶇疆鍜屽ぇ灏�
anchor1.setAnchorType(ClientAnchor.AnchorType.MOVE_DONT_RESIZE);
@@ -700,7 +702,7 @@
else
row = sheet.createRow(i + 1 );
- row.setHeightInPoints(40); // 璁剧疆琛岄珮涓�20纾�
+ // row.setHeightInPoints(40); // 璁剧疆琛岄珮涓�20纾�
// row.createCell(0)
// 寰楀埌瀵煎嚭瀵硅薄.
@@ -900,7 +902,7 @@
Cell cell = null;
try {
// 璁剧疆琛岄珮涓鸿嚜鍔ㄨ皟鏁�
- row.setHeight((short) -1);
+ // row.setHeight((short) -1);
// 鏍规嵁Excel涓缃儏鍐靛喅瀹氭槸鍚﹀鍑�,鏈変簺鎯呭喌闇�瑕佷繚鎸佷负绌�,甯屾湜鐢ㄦ埛濉啓杩欎竴鍒�.
if (attr.isExport()) {
// 鍒涘缓cell
@@ -944,6 +946,9 @@
// 璁剧疆鍒楃被鍨�
setCellVo(value, attr, cell);
}
+
+ adjustRowHeightAfterSetValue(row, cell, value);
+
addStatisticsData(column, Convert.toStr(value), attr);
}
} catch (Exception e) {
@@ -951,7 +956,65 @@
}
return cell;
}
+ /**
+ * 璁剧疆鍊煎悗璋冩暣琛岄珮
+ */
+ private void adjustRowHeightAfterSetValue(Row row, Cell cell, Object value) {
+ if (value == null) return;
+ String text = value.toString();
+ Sheet sheet = row.getSheet();
+
+ // 1. 璁$畻鑷姩楂樺害锛堝熀浜庡唴瀹癸級
+ short autoHeight = calculateSimpleAutoHeight(text, cell);
+
+ // 2. 鑾峰彇褰撳墠琛岄珮
+ short currentHeight = row.getHeight();
+ if (currentHeight == -1) {
+ currentHeight = sheet.getDefaultRowHeight();
+ }
+
+ // 3. 浣跨敤杈冨ぇ鐨勯珮搴︼紙鑷姩璁$畻鐨勯珮搴︽垨褰撳墠楂樺害锛�
+ short baseHeight = (short) Math.max(currentHeight, autoHeight);
+ System.out.println(autoHeight+"-----"+currentHeight+"-----"+baseHeight+"aaaaaaaaatttttttt");
+ // 4. 鍦ㄥ熀纭�涓婂鍔犻澶栭珮搴︼紙100鍗曚綅 = 5鐐癸級
+ short extraHeight = (short) 20;
+ short newHeight = (short) (baseHeight + extraHeight);
+
+ // 5. 闄愬埗鏈�澶ч珮搴�
+ short maxHeight = (short) 4000; // 100鐐�
+ row.setHeight((short) Math.min(maxHeight,newHeight));
+ }
+
+ /**
+ * 绠�鍖栫殑鑷姩楂樺害璁$畻
+ */
+ private short calculateSimpleAutoHeight(String text, Cell cell) {
+ if (text == null || text.isEmpty()) return 0;
+
+ Sheet sheet = cell.getSheet();
+ int colIndex = cell.getColumnIndex();
+
+ // 鑾峰彇鍒楀锛堝瓧绗︽暟锛�
+ int colWidthChars = sheet.getColumnWidth(colIndex) / 256;
+ if (colWidthChars <= 0) colWidthChars = 10;
+
+ // 璁$畻鏂囨湰琛屾暟
+ int lines = 1;
+ if (text.contains("\n")) {
+ // 鏈夋樉寮忔崲琛�
+ String[] parts = text.split("\n");
+ for (String part : parts) {
+ lines += Math.max(1, (int) Math.ceil(part.length() * 1.5 / colWidthChars));
+ }
+ } else {
+ // 鑷姩鎹㈣
+ lines = (int) Math.ceil(text.length() * 1.5 / colWidthChars);
+ }
+
+ // 姣忚楂樺害锛氬亣璁�18鐐癸紙360 POI鍗曚綅锛�
+ return (short) (lines * 360);
+ }
/**
* 璁剧疆 POI HSSFSheet 鍗曞厓鏍兼彁绀�
*
--
Gitblit v1.9.1