|
|
@@ -43,22 +43,17 @@ public class ExcelConverter implements Converter<String> {
|
|
|
*/
|
|
|
@Override
|
|
|
public WriteCellData<?> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
|
|
|
- //获取字段属性中的注解
|
|
|
Field field = contentProperty.getField();
|
|
|
EasyExcel easyExcel = field.getAnnotation(EasyExcel.class);
|
|
|
- //获取注解中的枚举信息
|
|
|
Class<? extends Enum> type = easyExcel.type();
|
|
|
- //获取枚举类的方法名 “codeOf”就是自己编写的函数,Integer.class 指定入参类型
|
|
|
int status = easyExcel.status();
|
|
|
boolean flag = easyExcel.flag();
|
|
|
Object invoke = null;
|
|
|
if (flag) {
|
|
|
invoke = verifyTranslate(value, status, type);
|
|
|
} else {
|
|
|
- //将转换的值进行返回
|
|
|
return new WriteCellData(value.toString());
|
|
|
}
|
|
|
- //将转换的值进行返回
|
|
|
if (invoke == null) {
|
|
|
return new WriteCellData();
|
|
|
}
|
|
|
@@ -80,23 +75,15 @@ public class ExcelConverter implements Converter<String> {
|
|
|
Object invoke = null;
|
|
|
try {
|
|
|
if (NumberConstant.ONE == status) {
|
|
|
- //获取枚举类的方法名 【getDestination】就是自己编写的函数,String.class 指定入参类型
|
|
|
Method codeOf = type.getMethod("getDestination", String.class);
|
|
|
- //反射执行方法,此方法得到的是一个枚举实例(具体得到什么,结合自身项目)
|
|
|
invoke = codeOf.invoke(type, value);
|
|
|
} else if (NumberConstant.TWO == status) {
|
|
|
- //获取枚举类的方法名 【getName】就是自己编写的函数,String.class 指定入参类型
|
|
|
Method codeOf = type.getMethod("getName", Integer.class);
|
|
|
- //反射执行方法,此方法得到的是一个枚举实例(具体得到什么,结合自身项目)
|
|
|
invoke = codeOf.invoke(type, Integer.valueOf(value));
|
|
|
} else {
|
|
|
- //获取枚举类的方法名 “codeOf”就是自己编写的函数,Integer.class 指定入参类型
|
|
|
Method codeOf = type.getMethod("getEntityByCode", Integer.class);
|
|
|
- //反射执行方法,此方法得到的是一个枚举实例(具体得到什么,结合自身项目)
|
|
|
invoke = codeOf.invoke(type, value);
|
|
|
- //枚举实例调用getname方法,得到name的值
|
|
|
Method getName = invoke.getClass().getMethod("getDestination");
|
|
|
- //将转换的值进行返回
|
|
|
invoke = String.valueOf(getName.invoke(invoke));
|
|
|
}
|
|
|
} catch (NoSuchMethodException e) {
|