今天被安排做老项目中,excel上传功能修改这一块。
用的是poi。
一些字段业务需要上传时为必填。
自己试了一下,cell.getStringCellValue()方法,表中单元格值为空的时候会爆出空指针异常,就想也没想的直接catch住空指针后,抛出了一个自定义异常,用@ControllerAdvice把信息传回前端(该字段不能为空),结果自测的时候,有两个必填字段是空的却也上传成功了。
又多测了几次发现,有的单元格为空可以抛出空指针,有的却不可以,就打了个断点。
发现原因是字体不同,所以传回去的空值不一样。
宋体的是 “” ,另一个字体是arial,传回去的就是null。
最后用了Spring的工具类对字符串又判断了一次,为空再抛出空指针异常。
如果有大佬清楚其中规则,或者有更好的处理方式,还请解答。