导出excel的时候通过使用注解,可以为特定的方法和类添加一些额外的信息,用于在导入导出操作中进行配置和处理。
注解类如下
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Documented
public @interface Excel {
/**
* 字段导入导出类型
*/
TypeEnum type() default TypeEnum.EXPORT_AND_IMPORT;
/**
* 导出字段排序
*/
int sort() default 1;
/**
* 导出字段标题
*/
String title() default "";
/**
* 导出字段内容对齐方式
*/
AlignEnum align() default AlignEnum.AUTO;
/**
* 内容追加
*/
String append() default "";
/**
* 日期格式化
*/
String dateFormat() default "yyyy-MM-dd HH:mm:ss";
/* 内容替换 ("1:是,0:否") */
String replace() default "";
/**
* 字段导入导出类型枚举
*/
enum TypeEnum{
EXPORT_AND_IMPORT(0), ONLY_EXPORT(1), ONLY_IMPORT(2);
int value;
TypeEnum(int value){
this.value = value;
}
public int getValue() {
return value;
}
}
/**
* 导出字段内容对齐方式枚举
*/
enum AlignEnum {
AUTO(0),
LEFT(1),
CENTER(2),
RIGHT(3);
int value;
AlignEnum(int value) {
this.value = value;
}
public int value() {
return this.value;
}
}
}
这段代码定义了一个名为Excel
的注解,下面对每个注解元素进行详细解释:
-
@Retention(RetentionPolicy.RUNTIME)
- 用于指定注解的保留策略为运行时,即在运行时可以通过反射读取该注解。
-
@Target(value = {ElementType.METHOD, ElementType.TYPE})
- 用于指定可以使用该注解的目标类型为方法和类(包括接口、枚举)。
-
@Documented
- 用于指示该注解将成为注解元素的公共API的一部分。当其他人使用API文档工具生成文档时,该注解会被包含在文档中。
接下来是注解中定义的注解元素:
-
TypeEnum type() default TypeEnum.EXPORT_AND_IMPORT;
- 定义了一个名为
type
的注解元素,类型为TypeEnum
枚举,且默认值为PoiTypeEnum.EXPORT_AND_IMPORT
。 - 用于指定导入导出类型。
- 定义了一个名为
-
int sort() default 1;
- 定义了一个名为
sort
的注解元素,类型为整数,且默认值为1。 - 用于指定导出字段的排序。
- 定义了一个名为
-
String title() default "";
- 定义了一个名为
title
的注解元素,类型为字符串,且默认值为空字符串。 - 用于指定列标题。
- 定义了一个名为
-
AlignEnum align() default AlignEnum.AUTO;
- 定义了一个名为
align
的注解元素,类型为AlignEnum
枚举,且默认值为PoiAlignEnum.AUTO
。 - 用于指定内容对齐方式。
- 定义了一个名为
-
String append() default "";
- 定义了一个名为
append
的注解元素,类型为字符串,且默认值为空字符串。 - 用于指定内容追加。
- 定义了一个名为
-
String dateFormat() default "yyyy-MM-dd HH:mm:ss";
- 定义了一个名为
dateFormat
的注解元素,类型为字符串,且默认值为"yyyy-MM-dd HH:mm:ss"。 - 用于指定日期格式化。
- 定义了一个名为
-
String replace() default "";
- 定义了一个名为
replace
的注解元素,类型为字符串,且默认值为空字符串。 - 用于内容替换,例如"1:是,0:否"表示将某个字段的值替换成相应的文字描述。
- 定义了一个名为