Pre Merge pull request !454 from 电脑大侠/master

pull/454/MERGE
电脑大侠 2023-06-10 07:58:44 +00:00 committed by Gitee
commit 3f49472329
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 12 additions and 12 deletions

View File

@ -12,16 +12,7 @@ import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
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.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
@ -732,7 +723,7 @@ public class ExcelUtil<T>
int subIndex = 0; int subIndex = 0;
for (Field subField : subFields) 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); subField.setAccessible(true);
Excel attr = subField.getAnnotation(Excel.class); Excel attr = subField.getAnnotation(Excel.class);
@ -1439,7 +1430,16 @@ public class ExcelUtil<T>
subMethod = getSubMethod(field.getName(), clazz); subMethod = getSubMethod(field.getName(), clazz);
ParameterizedType pt = (ParameterizedType) field.getGenericType(); ParameterizedType pt = (ParameterizedType) field.getGenericType();
Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0]; Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
this.subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); List<Field> fieldList = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class);
Iterator<Field> iterator = fieldList.iterator();
while (iterator.hasNext()) {
Field next = iterator.next();
if (ArrayUtils.contains(this.excludeFields, field.getName() + "." + next.getName())) {
iterator.remove();
}
}
this.subFields = fieldList;
} }
} }