[alibaba/easyexcel]当Excel字段为空字符串的时候会出现NumberFormatException

2024-02-19 741 views
9
3317

当excel的字段为空字符串的时候, NumberUtils.parseBigDecimal(cellData.getStringValue(), contentProperty)会出现 Caused by: java.lang.NumberFormatException: null at java.math.BigDecimal.(BigDecimal.java:603) at java.math.BigDecimal.(BigDecimal.java:387) at java.math.BigDecimal.(BigDecimal.java:813) at com.alibaba.excel.util.NumberUtils.parseBigDecimal(NumberUtils.java:135)

改进: 增加空字符串 com.alibaba.excel.util.NumberUtils#parseBigDecimal com.alibaba.excel.util.NumberUtils#parseByte com.alibaba.excel.util.NumberUtils#parseDouble com.alibaba.excel.util.NumberUtils#parseFloat com.alibaba.excel.util.NumberUtils#parseLong com.alibaba.excel.util.NumberUtils#parseShort com.alibaba.excel.util.NumberUtils#parseInteger 例:


   private static boolean  isEmtyStr(String str) {
      if(StrUtil.isBlank(string)) {
            return true;
        } 
    return false;
   }
    public static BigDecimal parseBigDecimal(String string, ExcelContentProperty contentProperty)
        throws ParseException {
       if(isEmtyStr(string)) {
            return null;
       }
        if (!hasFormat(contentProperty)) {
            return new BigDecimal(string);
        }
        return new BigDecimal(parse(string, contentProperty).toString());
    }

回答

2

请自行校验字符串合法性,工具方法不做合法性校验

9

请自行校验字符串合法性,工具方法不做合法性校验 那能否在com.alibaba.excel.annotation.ExcelProperty 这个注解里面加一个自定义的校验器呢?这样我就可以自定义校验参数规则了