解决Boolean类型属性在解析单元格数据后, 会先被此 val = Convert.toBool(val, false) 解析为 Boolean 类型, 之后 val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()) 此方法在进行反向解析值时, 无法匹配到返回为"", 导致 Boolean 值丢失.
如:
属性
@Excel(name = "是否打开", readConverterExp = "true=yes,false=no")
private Boolean isOpen;
首先会执行 val = Convert.toBool(val, false); 此方法返回 Boolean 类型.
public static Boolean toBool(Object value, Boolean defaultValue)
{
if (value == null)
{
return defaultValue;
}
if (value instanceof Boolean)
{
return (Boolean) value;
}
String valueStr = toStr(value, null);
if (StringUtils.isEmpty(valueStr))
{
return defaultValue;
}
valueStr = valueStr.trim().toLowerCase();
switch (valueStr)
{
case "true":
case "是":
case "yes":
case "ok":
case "1":
return true;
case "否":
case "false":
case "no":
case "0":
return false;
default:
return defaultValue;
}
}
Signed-off-by: 程子 <395030787@qq.com>
|
||
|---|---|---|
| .. | ||
| src/main/java/com/ruoyi/common | ||
| pom.xml | ||