1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;
    }
}