自定义类
import cn.hutool.db.sql.Condition;
import com.baomidou.mybatisplus.annotation.EnumValue;
import io.swagger.models.ExternalDocs;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Stream;
@Getter
@AllArgsConstructor
public enum TowardEnum {
/**
* 未知
*/
UNKNOWN(0, "未知"),
/**
* 东
*/
NORTH(1,"东"),
/**
* 南
*/
SOUTH(2,"南"),
/**
* 西
*/
EAST(3,"西"),
/**
* 北
*/
WEST(4,"北"),
/**
* 东南
*/
SOUTHEAST(5,"东南"),
/**
* 西南
*/
SOUTHWEST(6,"西南"),
/**
* 东北
*/
NORTHEAST(7,"东北"),
/**
* 西北
*/
NORTHWEST(8,"西北");
@EnumValue
private final Integer id;
private final String desc;
public static String getToward(Integer id) {
return Arrays.stream(TowardEnum.values()).filter(e -> Objects.equals(e.id, id)).map(e -> e.desc).findFirst().orElse("");
}
}
Converter
import cn.gcfc.admin.enums.house.TowardEnum;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
public class TowardConverter implements Converter<TowardEnum> {
@Override
public Class<?> supportJavaTypeKey() {
return TowardEnum.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
// 导入用
@Override
public TowardEnum convertToJavaData(ReadConverterContext<?> context) {
String stringValue = context.getReadCellData().getStringValue();
TowardEnum TowardEnum = null;
switch (stringValue){
case "东" :
return TowardEnum.NORTH;
case "南":
return TowardEnum.SOUTH;
case "西":
return TowardEnum.EAST;
case "北":
return TowardEnum.WEST;
case "东南":
return TowardEnum.SOUTHEAST;
case "西南":
return TowardEnum.SOUTHWEST;
case "东北":
return TowardEnum.NORTHEAST;
case "西北":
return TowardEnum.NORTHWEST;
default:
return TowardEnum.UNKNOWN;
}
}
// 导出用
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<TowardEnum> context) {
TowardEnum value = context.getValue();
Integer type = value.getId();
String string = null;
switch (type){
case 1:
string = TowardEnum.NORTH.getDesc();
break;
case 2:
string = TowardEnum.SOUTH.getDesc();
break;
case 3:
string = TowardEnum.EAST.getDesc();
break;
case 4:
string = TowardEnum.WEST.getDesc();
break;
case 5:
string = TowardEnum.SOUTHEAST.getDesc();
break;
case 6:
string = TowardEnum.SOUTHWEST.getDesc();
break;
case 7:
string = TowardEnum.NORTHEAST.getDesc();
break;
case 8:
string = TowardEnum.NORTHWEST.getDesc();
break;
default:
string = TowardEnum.UNKNOWN.getDesc();
break;
}
return new WriteCellData<>(string);
}
}
VO
import com.alibaba.excel.annotation.ExcelProperty;
@Data
@ApiModel(value = "房间信息")
public class RoomVO {
// 默认输出name()
@ExcelProperty(converter = TowardConverter.class)
@ApiModelProperty(value = "房间朝向")
private TowardEnum toward;
}