package com.jcdm.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 org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import com.jcdm.common.utils.poi.ExcelHandlerAdapter; /** * 自定义导出Excelæ•°æ®æ³¨è§£ * * @author jc */ @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; /** * 导出时在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 {}; /** * 是å¦éœ€è¦çºµå‘åˆå¹¶å•å…ƒæ ¼,应对需求:å«æœ‰list集åˆå•å…ƒæ ¼) */ public boolean needMerge() default false; /** * 是å¦å¯¼å‡ºæ•°æ®,应对需求:有时我们需è¦å¯¼å‡ºä¸€ä»½æ¨¡æ¿,è¿™æ˜¯æ ‡é¢˜éœ€è¦ä½†å†…容需è¦ç”¨æˆ·æ‰‹å·¥å¡«å†™. */ public boolean isExport() default true; /** * å¦ä¸€ä¸ªç±»ä¸çš„属性å称,支æŒå¤šçº§èŽ·å–,以å°æ•°ç‚¹éš”å¼€ */ public String targetAttr() default ""; /** * 是å¦è‡ªåŠ¨ç»Ÿè®¡æ•°æ®,在最åŽè¿½åŠ 一行统计数æ®æ€»å’Œ */ public boolean isStatistics() default false; /** * 导出类型(0æ•°å— 1å—符串 2图片) */ public ColumnType cellType() default ColumnType.STRING; /** * 导出列头背景颜色 */ public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; /** * 导出列头å—体颜色 */ public IndexedColors headerColor() default IndexedColors.WHITE; /** * 导出å•å…ƒæ ¼èƒŒæ™¯é¢œè‰² */ public IndexedColors backgroundColor() default IndexedColors.WHITE; /** * 导出å•å…ƒæ ¼å—体颜色 */ public IndexedColors color() default IndexedColors.BLACK; /** * 导出å—段对é½æ–¹å¼ */ public HorizontalAlignment align() default HorizontalAlignment.CENTER; /** * 自定义数æ®å¤„ç†å™¨ */ public Class<?> handler() default ExcelHandlerAdapter.class; /** * 自定义数æ®å¤„ç†å™¨å‚æ•° */ public String[] args() default {}; /** * å—段类型(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; } } }