ExcelUtil工具类-》支持数组类型-》子类,自定义隐藏excel字段

This commit is contained in:
tqg 2023-06-10 10:31:02 +08:00
parent 1207052749
commit 96ddcae762
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.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<T>
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<T>
subMethod = getSubMethod(field.getName(), clazz);
ParameterizedType pt = (ParameterizedType) field.getGenericType();
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;
}
}