easyExcel版本2.2.7,3.0及以上使用不一致
类上加注解
@ExcelProperty(value = "下发类型",converter = ComponentPurchaseBomExceladvanceStatusConvert.class)private Integer advanceStatus;
转换类
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;import java.util.HashMap;
import java.util.Map;public class ComponentPurchaseBomExceladvanceStatusConvert implements Converter<Integer> {private static final Map<Integer, String> STATUS_MAP = new HashMap<>();private static final Map<String, Integer> STRING_MAP = new HashMap<>();static {STATUS_MAP.put(0, "提前下发");STATUS_MAP.put(1, "提前下发");STATUS_MAP.put(2, "正式下发");STATUS_MAP.put(3, "正式下发");STRING_MAP.put("提前下发",0);STRING_MAP.put("提前下发",1);STRING_MAP.put("正式下发",2);STRING_MAP.put("正式下发",3);}@Overridepublic Class<?> supportJavaTypeKey() {return Integer.class;}@Overridepublic CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;}@Overridepublic Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,GlobalConfiguration globalConfiguration) throws Exception {// 这里如果有需要可以实现从字符串转换为整数的逻辑,一般导出不需要return STRING_MAP.get(cellData.getStringValue());}@Overridepublic CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty,GlobalConfiguration globalConfiguration) throws Exception {String statusText = STATUS_MAP.getOrDefault(value, "未知状态");return new CellData(statusText);}
}