From 2f9a331f9e8a1fbcf1cc6652d3ce980c95475618 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 4 Dec 2025 16:07:21 +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/ruoyi/common/utils/poi/ExcelUtil.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 5afcb2d0..9198b91c 100644 --- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -174,12 +174,12 @@ public class ExcelUtil /** * 对象的子列表方法 */ - private Map subMethods = new HashMap<>(); + private Map subMethods; /** * 对象的子列表属性 */ - private Map> subFieldsMap = new HashMap<>(); + private Map> subFieldsMap; /** * 统计列表 @@ -252,7 +252,10 @@ public class ExcelUtil 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); @@ -722,7 +725,6 @@ public class ExcelUtil * 填充excel数据 * * @param index 序号 - * @param row 单元格行 */ @SuppressWarnings("unchecked") public void fillExcelData(int index) @@ -746,10 +748,10 @@ public class ExcelUtil 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); @@ -766,8 +768,8 @@ public class ExcelUtil } subIndex++; } - column += currentSubFields.size(); } + column += currentSubFields.size(); } catch (Exception e) { @@ -1558,6 +1560,8 @@ public class ExcelUtil { 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))