package cn.iocoder.yudao.framework.excel.core.convert; import cn.hutool.core.util.StrUtil; import cn.idev.excel.metadata.GlobalConfiguration; import cn.idev.excel.enums.CellDataTypeEnum; import cn.idev.excel.metadata.data.ReadCellData; import cn.idev.excel.metadata.property.ExcelContentProperty; /** 导入字典时拒绝未知值,避免无效值被当成空值并套用默认状态。 */ public class StrictDictConvert extends DictConvert { @Override public Object convertToJavaData(ReadCellData data, ExcelContentProperty property, GlobalConfiguration configuration) { Object value = super.convertToJavaData(data, property, configuration); if (value == null && (StrUtil.isNotBlank(data.getStringValue()) || data.getType() == CellDataTypeEnum.NUMBER || data.getType() == CellDataTypeEnum.BOOLEAN)) { throw new IllegalArgumentException("字典值无法识别,请使用模板中的有效选项"); } return value; } }