0
点赞
收藏
分享

微信扫一扫

excel导入数据时null值的处理


场景

excel导入数据时,空文本转换金额报错。

问题分析

如amount字段,后台明明设置了为空不转换啊:

if(StringUtils.isEmpty(amount)){
invoice.setAmount(new Double(0));
}else{
invoice.setAmount(Double.valueOf(amount));
}

但是仍然报错了。
原因是excel空文本,传到后台是"null"字符串。这样过滤条件过滤不掉它,Double.valueof(amount);会报错。

解决方案

代码处理

添加个条件判断,StringUtils.isEmpty(amount) || “null”.equals(amount)
都给他设置为null或者0,这样就可以了。
示例代码如下:

@Data
public class Invoice {
private Double amount;
private String checkCode;

public static void main(String[] args) {
Invoice invoice = new Invoice();
String amount="null";
String checkCode="null";
if(StringUtils.isEmpty(amount) || "null".equals(amount)){
invoice.setAmount(new Double(0)); // 如果为空或"null",金额设置为 0 或者 null
}else{
invoice.setAmount(Double.valueOf(amount));
}
if(StringUtils.isEmpty(checkCode) || "null".equals(amount)){
invoice.setCheckCode(null); // 如果为空或"null",校验码设置为 "" 或者 null
}else{
invoice.setCheckCode(checkCode);
}
System.out.println(JSON.toJSONString(invoice));
}
}

excel设置


举报

相关推荐

0 条评论