支持自定义隐藏Excel属性列
This commit is contained in:
		
							parent
							
								
									bc8b5f1079
								
							
						
					
					
						commit
						7cc9d17424
					
				@ -22,6 +22,7 @@ import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import org.apache.commons.lang3.ArrayUtils;
 | 
			
		||||
import org.apache.commons.lang3.RegExUtils;
 | 
			
		||||
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
 | 
			
		||||
import org.apache.poi.hssf.usermodel.HSSFPicture;
 | 
			
		||||
@ -163,11 +164,27 @@ public class ExcelUtil<T>
 | 
			
		||||
     */
 | 
			
		||||
    public Class<T> clazz;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 需要排除列属性
 | 
			
		||||
     */
 | 
			
		||||
    public String[] excludeFields;
 | 
			
		||||
 | 
			
		||||
    public ExcelUtil(Class<T> clazz)
 | 
			
		||||
    {
 | 
			
		||||
        this.clazz = clazz;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 隐藏Excel中列属性
 | 
			
		||||
     *
 | 
			
		||||
     * @param fields 列属性名 示例[单个"name"/多个"id","name"]
 | 
			
		||||
     * @throws Exception
 | 
			
		||||
     */
 | 
			
		||||
    public void hideColumn(String... fields)
 | 
			
		||||
    {
 | 
			
		||||
        this.excludeFields = fields;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void init(List<T> list, String sheetName, String title, Type type)
 | 
			
		||||
    {
 | 
			
		||||
        if (list == null)
 | 
			
		||||
@ -1202,30 +1219,33 @@ public class ExcelUtil<T>
 | 
			
		||||
        tempFields.addAll(Arrays.asList(clazz.getDeclaredFields()));
 | 
			
		||||
        for (Field field : tempFields)
 | 
			
		||||
        {
 | 
			
		||||
            // 单注解
 | 
			
		||||
            if (field.isAnnotationPresent(Excel.class))
 | 
			
		||||
            if (!ArrayUtils.contains(this.excludeFields, field.getName()))
 | 
			
		||||
            {
 | 
			
		||||
                Excel attr = field.getAnnotation(Excel.class);
 | 
			
		||||
                if (attr != null && (attr.type() == Type.ALL || attr.type() == type))
 | 
			
		||||
                {
 | 
			
		||||
                    field.setAccessible(true);
 | 
			
		||||
                    fields.add(new Object[] { field, attr });
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 多注解
 | 
			
		||||
            if (field.isAnnotationPresent(Excels.class))
 | 
			
		||||
            {
 | 
			
		||||
                Excels attrs = field.getAnnotation(Excels.class);
 | 
			
		||||
                Excel[] excels = attrs.value();
 | 
			
		||||
                for (Excel attr : excels)
 | 
			
		||||
                // 单注解
 | 
			
		||||
                if (field.isAnnotationPresent(Excel.class))
 | 
			
		||||
                {
 | 
			
		||||
                    Excel attr = field.getAnnotation(Excel.class);
 | 
			
		||||
                    if (attr != null && (attr.type() == Type.ALL || attr.type() == type))
 | 
			
		||||
                    {
 | 
			
		||||
                        field.setAccessible(true);
 | 
			
		||||
                        fields.add(new Object[] { field, attr });
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 多注解
 | 
			
		||||
                if (field.isAnnotationPresent(Excels.class))
 | 
			
		||||
                {
 | 
			
		||||
                    Excels attrs = field.getAnnotation(Excels.class);
 | 
			
		||||
                    Excel[] excels = attrs.value();
 | 
			
		||||
                    for (Excel attr : excels)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (attr != null && (attr.type() == Type.ALL || attr.type() == type))
 | 
			
		||||
                        {
 | 
			
		||||
                            field.setAccessible(true);
 | 
			
		||||
                            fields.add(new Object[] { field, attr });
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return fields;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user