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导入校验因单元格格式产生的空对象问题的主要内容,如果未能解决你的问题,请参考以下文章

POI中设置Excel单元格格式

POI中设置Excel单元格格式

java poi 导入 excel怎么设置单元格格式为 文字

Poi导出Excel模版设置单元格为下拉框格式

Poi导出Excel模版设置单元格为下拉框格式

hutool导出excel 设置单元格日期格式 poi设置excel单元格日期格式