/** * Copyright (c) 2013-Now http://jeesite.com All rights reserved. */ package com.ruoyi.common.core.excel.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Excel注解定义 */ @Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface ExcelField { /** * 导出字段名(默认调用当前字段的“get”方法,如指定导出字段为对象,请填写“对象名.对象属性”,例:“area.name”、“hr.name”) */ String attrName() default ""; /** * 导出字段标题(需要添加批注请用“**”分隔,标题**批注,仅对导出模板有效) */ String title(); /** * 字段类型(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; } } /** * 导出字段对齐方式(0:自动;1:靠左;2:居中;3:靠右) */ Align align() default Align.AUTO; 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; } } /** * 指定导出列宽(以字符宽度的1/256为单位,假如你想显示5个字符的话,就可以设置5*256,1个汉字占2个字符) */ int width() default -1; /** * 导出字段字段排序(升序) */ int sort() default 0; /** * 导入时指定列索引(从0开始)在指定读取excel中的指定的列时使用 */ int column() default -1; /** * 如果是字典类型,请设置字典的type值 */ String dictType() default ""; /** * 反射类型 * MoneyType.class 金额类型转换(保留两位) * DateTimeType.class 日期时间类型转换 yyyy-MM-dd HH:mm:ss */ Class fieldType() default Class.class; /** * 数值格式(例如:0.00,yyyy-MM-dd) */ String dataFormat() default "@"; /** * 字段归属组(针对每一种业务的导入、导出) imp、exp */ String[] groups() default {}; }