Poi导入校验因单元格格式产生的空对象问题
Posted 默慊$
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Poi导入校验因单元格格式产生的空对象问题相关的知识,希望对你有一定的参考价值。
今天遇到一个问题,需求是需要导出符合条件的基础数据,然后用户填充详细信息后再导入系统,这时候就碰到一个问题,因为Poi导出默认的是常规格式,有些数据比如身份证号、银行卡号等比较长的数字很容易变为科学计数法形式的记载,时间格式也可能跟你想要的不一样,这时候就需要我们在导出的时候设置好单元格的格式,比较简单的就是直接全部设置为文本,这时候又会产生新的问题,文本格式的数据会作为空对象进入系统,如果没有合适的校验,可能会导致程序报错或者垃圾数据进入,下面我分享下我当时的解决方法,话不多说,直接上代码:
/**
* 判断该对象是否所有属性为空
* 返回ture表示所有属性为null,返回false表示不是所有属性都是null
*/
public static boolean isAllFieldNull(Object object)
boolean flag = true;
Class clazz = object.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields)
//设置属性是可以访问的(私有的也可以)
field.setAccessible(true);
Object value = null;
try
value = field.get(object);
// 只要有1个属性不为空,那么就不是所有的属性值都为空
if (value != null)
flag = false;
break;
catch (IllegalAccessException e)
e.printStackTrace();
return flag;
直接放入工具类用就好了,对于空对象一个是忽略非空的校验,也要在正式处理数据时剔除,可以参考我之前的转载的文章:
Java集合中removeIf的使用,过滤集合中符合条件的元素_默慊$的博客-CSDN博客_java过滤集合里的元素
Java集合中filter的使用,保留集合中符合条件的元素_默慊$的博客-CSDN博客_java 集合filter
今天的分享就到这里,有帮助麻烦点赞支持哈!
以上是关于Poi导入校验因单元格格式产生的空对象问题的主要内容,如果未能解决你的问题,请参考以下文章