From 96ddcae7626ae34a04e5213ceb4e9ea38332f582 Mon Sep 17 00:00:00 2001 From: tqg <49751971+ls546280821@users.noreply.github.com> Date: Sat, 10 Jun 2023 10:31:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?ExcelUtil=E5=B7=A5=E5=85=B7=E7=B1=BB-?= =?UTF-8?q?=E3=80=8B=E6=94=AF=E6=8C=81=E6=95=B0=E7=BB=84=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?-=E3=80=8B=E5=AD=90=E7=B1=BB=EF=BC=8C=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=9A=90=E8=97=8Fexcel=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 12a63688f..05f1cef83 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -12,16 +12,7 @@ import java.math.BigDecimal; import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; @@ -732,7 +723,7 @@ public class ExcelUtil int subIndex = 0; for (Field subField : subFields) { - if (subField.isAnnotationPresent(Excel.class)) + if (subField.isAnnotationPresent(Excel.class) && !ArrayUtils.contains(this.excludeFields, field.getName() + "." + subField.getName())) { subField.setAccessible(true); Excel attr = subField.getAnnotation(Excel.class); @@ -1439,7 +1430,16 @@ public class ExcelUtil subMethod = getSubMethod(field.getName(), clazz); ParameterizedType pt = (ParameterizedType) field.getGenericType(); Class subClass = (Class) pt.getActualTypeArguments()[0]; - this.subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + List fieldList = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + Iterator iterator = fieldList.iterator(); + while (iterator.hasNext()) { + Field next = iterator.next(); + if (ArrayUtils.contains(this.excludeFields, field.getName() + "." + next.getName())) { + iterator.remove(); + } + } + this.subFields = fieldList; + } } From 4f38ba8b6833522987890252aa07fd5d04219db1 Mon Sep 17 00:00:00 2001 From: tqg <49751971+ls546280821@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:57:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ExcelUtil=E5=B7=A5=E5=85=B7=E7=B1=BB-?= =?UTF-8?q?=E3=80=8B=E8=87=AA=E5=AE=9A=E4=B9=89=E9=9A=90=E8=97=8Fexcel?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=9A=E4=BF=AE=E5=A4=8D=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=AD=90=E7=B1=BB=EF=BC=8C=E4=BC=9A=E6=8A=8A?= =?UTF-8?q?=E5=AD=90=E7=B1=BB=E6=89=80=E6=9C=89=E5=8F=82=E6=95=B0=E6=94=BE?= =?UTF-8?q?=E5=88=B0=E4=B8=80=E4=B8=AA=E5=8D=95=E5=85=83=E6=A0=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98;=E4=BF=AE=E5=A4=8D-=E3=80=8B=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=AD=97=E6=AE=B5-=E3=80=8B=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4=E9=9A=90=E8=97=8F-=E3=80=8B=E4=BD=86=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BE=9D=E7=84=B6=E4=BC=9A=E5=90=91=E5=8F=B3=E5=81=8F?= =?UTF-8?q?=E7=A7=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 05f1cef83..9ca688d68 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -728,15 +728,14 @@ public class ExcelUtil subField.setAccessible(true); Excel attr = subField.getAnnotation(Excel.class); this.addCell(attr, row, (T) obj, subField, column + subIndex); + subIndex++; } - subIndex++; } subFirst = true; } this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size(); - } - else - { + } else if (!Collection.class.isAssignableFrom(field.getType())) { + //子类对象可能被隐藏 this.addCell(excel, row, vo, field, column++); } }