From 4a534ef887e95e616276237279e21fe99b0bca90 Mon Sep 17 00:00:00 2001 From: Hsy <32729842@qq.com> Date: Mon, 8 Dec 2025 09:24:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81Excel=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=9A=84=E5=A4=9A=E4=B8=AA=E5=AD=90=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devttl/common/utils/poi/ExcelUtil.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/devttl-common/src/main/java/com/devttl/common/utils/poi/ExcelUtil.java b/devttl-common/src/main/java/com/devttl/common/utils/poi/ExcelUtil.java index 2d6c8b841..4a0445f12 100644 --- a/devttl-common/src/main/java/com/devttl/common/utils/poi/ExcelUtil.java +++ b/devttl-common/src/main/java/com/devttl/common/utils/poi/ExcelUtil.java @@ -130,12 +130,12 @@ public class ExcelUtil { /** * 对象的子列表方法 */ - private Map subMethods = new HashMap<>(); + private Map subMethods; /** * 对象的子列表属性 */ - private Map> subFieldsMap = new HashMap<>(); + private Map> subFieldsMap; /** * 统计列表 @@ -200,7 +200,10 @@ public class ExcelUtil { if (StringUtils.isNotEmpty(title)) { int titleLastCol = this.fields.size() - 1; if (isSubList()) { - titleLastCol = titleLastCol + subFieldsMap.values().size() - 1; + for (List currentSubFields : subFieldsMap.values()) + { + titleLastCol = titleLastCol + currentSubFields.size() - 1; + } } Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); titleRow.setHeightInPoints(30); @@ -598,9 +601,9 @@ public class ExcelUtil { if (Collection.class.isAssignableFrom(field.getType())) { try { Collection subList = (Collection) getTargetValue(vo, field, excel); + List currentSubFields = subFieldsMap.get(field.getName()); if (subList != null && !subList.isEmpty()) { int subIndex = 0; - List currentSubFields = subFieldsMap.get(field.getName()); for (Object subVo : subList) { Row subRow = sheet.getRow(currentRowNum + subIndex); if (subRow == null) { @@ -614,8 +617,8 @@ public class ExcelUtil { } subIndex++; } - column += currentSubFields.size(); } + column += currentSubFields.size(); } catch (Exception e) { log.error("填充集合数据失败", e); } @@ -1275,6 +1278,8 @@ public class ExcelUtil { public List getFields() { List fields = new ArrayList(); List tempFields = new ArrayList<>(); + subFieldsMap = new HashMap<>(); + subMethods = new HashMap<>(); tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); if (StringUtils.isNotEmpty(includeFields)) {