You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							176 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
	
	
							176 lines
						
					
					
						
							3.9 KiB
						
					
					
				package com.ruoyi.common.annotation; | 
						|
 | 
						|
import java.lang.annotation.ElementType; | 
						|
import java.lang.annotation.Retention; | 
						|
import java.lang.annotation.RetentionPolicy; | 
						|
import java.lang.annotation.Target; | 
						|
import java.math.BigDecimal; | 
						|
import com.ruoyi.common.utils.poi.ExcelHandlerAdapter; | 
						|
 | 
						|
/** | 
						|
 * 自定义导出Excel数据注解 | 
						|
 *  | 
						|
 * @author ruoyi | 
						|
 */ | 
						|
@Retention(RetentionPolicy.RUNTIME) | 
						|
@Target(ElementType.FIELD) | 
						|
public @interface Excel | 
						|
{ | 
						|
    /** | 
						|
     * 导出时在excel中排序 | 
						|
     */ | 
						|
    public int sort() default Integer.MAX_VALUE; | 
						|
 | 
						|
    /** | 
						|
     * 导出到Excel中的名字. | 
						|
     */ | 
						|
    public String name() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 日期格式, 如: yyyy-MM-dd | 
						|
     */ | 
						|
    public String dateFormat() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 如果是字典类型,请设置字典的type值 (如: sys_user_sex) | 
						|
     */ | 
						|
    public String dictType() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 读取内容转表达式 (如: 0=男,1=女,2=未知) | 
						|
     */ | 
						|
    public String readConverterExp() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 分隔符,读取字符串组内容 | 
						|
     */ | 
						|
    public String separator() default ","; | 
						|
 | 
						|
    /** | 
						|
     * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) | 
						|
     */ | 
						|
    public int scale() default -1; | 
						|
 | 
						|
    /** | 
						|
     * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN | 
						|
     */ | 
						|
    public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; | 
						|
 | 
						|
    /** | 
						|
     * 导出类型(0数字 1字符串) | 
						|
     */ | 
						|
    public ColumnType cellType() default ColumnType.STRING; | 
						|
 | 
						|
    /** | 
						|
     * 导出时在excel中每个列的高度 单位为字符 | 
						|
     */ | 
						|
    public double height() default 14; | 
						|
 | 
						|
    /** | 
						|
     * 导出时在excel中每个列的宽 单位为字符 | 
						|
     */ | 
						|
    public double width() default 16; | 
						|
 | 
						|
    /** | 
						|
     * 文字后缀,如% 90 变成90% | 
						|
     */ | 
						|
    public String suffix() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 当值为空时,字段的默认值 | 
						|
     */ | 
						|
    public String defaultValue() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 提示信息 | 
						|
     */ | 
						|
    public String prompt() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 设置只能选择不能输入的列内容. | 
						|
     */ | 
						|
    public String[] combo() default {}; | 
						|
 | 
						|
    /** | 
						|
     * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. | 
						|
     */ | 
						|
    public boolean isExport() default true; | 
						|
 | 
						|
    /** | 
						|
     * 另一个类中的属性名称,支持多级获取,以小数点隔开 | 
						|
     */ | 
						|
    public String targetAttr() default ""; | 
						|
 | 
						|
    /** | 
						|
     * 是否自动统计数据,在最后追加一行统计数据总和 | 
						|
     */ | 
						|
    public boolean isStatistics() default false; | 
						|
 | 
						|
    /** | 
						|
     * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) | 
						|
     */ | 
						|
    public Align align() default Align.AUTO; | 
						|
 | 
						|
    /** | 
						|
     * 自定义数据处理器 | 
						|
     */ | 
						|
    public Class<?> handler() default ExcelHandlerAdapter.class; | 
						|
 | 
						|
    /** | 
						|
     * 自定义数据处理器参数 | 
						|
     */ | 
						|
    public String[] args() default {}; | 
						|
 | 
						|
    public enum Align | 
						|
    { | 
						|
        AUTO(0), LEFT(1), CENTER(2), RIGHT(3); | 
						|
        private final int value; | 
						|
 | 
						|
        Align(int value) | 
						|
        { | 
						|
            this.value = value; | 
						|
        } | 
						|
 | 
						|
        public int value() | 
						|
        { | 
						|
            return this.value; | 
						|
        } | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * 字段类型(0:导出导入;1:仅导出;2:仅导入) | 
						|
     */ | 
						|
    Type type() default Type.ALL; | 
						|
 | 
						|
    public enum Type | 
						|
    { | 
						|
        ALL(0), EXPORT(1), IMPORT(2); | 
						|
        private final int value; | 
						|
 | 
						|
        Type(int value) | 
						|
        { | 
						|
            this.value = value; | 
						|
        } | 
						|
 | 
						|
        public int value() | 
						|
        { | 
						|
            return this.value; | 
						|
        } | 
						|
    } | 
						|
 | 
						|
    public enum ColumnType | 
						|
    { | 
						|
        NUMERIC(0), STRING(1), IMAGE(2); | 
						|
        private final int value; | 
						|
 | 
						|
        ColumnType(int value) | 
						|
        { | 
						|
            this.value = value; | 
						|
        } | 
						|
 | 
						|
        public int value() | 
						|
        { | 
						|
            return this.value; | 
						|
        } | 
						|
    } | 
						|
} |