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;
public class LoginStatusConverter implements Converter<String> {
//在java中状态是用 0 1 来标识的 所以是int
@Override
public Class supportJavaTypeKey() {return Integer.class;}
// 在excel中是“登录”“未登录” 所以是string
@Override
public CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;}
//将excel的数据类型转为java数据类型
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String stringValue = cellData.getStringValue();
if (stringValue == null) {
throw new RuntimeException("登录状态填写为空");
}
if ("登录".equals(stringValue)) {
return 1;
}
return 0;
}
//将java的数据类型转为excel数据类型
@Override
public CellData convertToExcelData(Integer s, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if (s == 0){
return new CellData("未登录");
}
return new CellData("登录");
}
}
然后在实体类的字段上标注 converter
@ExcelProperty(value = "登录状态",index=3,converter=LoginStatusConverter.class)
private Integer loginStatus;