一、前言
1.在项目中,既使用到了POI,也使用到了EasyExcel,想写篇文章记录下两者的使用感受和区别
二、数据处理
1.清空内容后上传文件的区别
①前情提要:假设用户填写excel文件错误,在excel中可以选择多个单元格,然后点击清空内容,会将内容清空
②POI会将这些清空的内容视为空串,在解析时会多一条全是空串的数据,而EasyExcel会将这些空串进行过滤(假设一条数据中所有的单元格数据都是空串的话)
2.不填写时如何处理
①POI在进行单元格的迭代时,最好是根据表头的个数进行迭代,如果直接使用foreach循环的话,会导致数据丢失的情况(如某行数据不填,POI需要手动填充为0,否则会影响后面将List集合转换为List<Entity>),如下

三、数据的转化
1.由于POI是对二维数组进行处理,因此需要手动得将List集合转换为对象,对象可能要对数据进行额外的处理,如数据类型的映射,而EasyExcel则不需要
四、校验
1.既然提到的导入,自然避免不了校验,POI中有很多校验,代码格式看起来会比较混乱,如excel数据是否重复,是否和数据库数据重复、其他校验(如工号、电话号码等)。而EasyExcel是写在Listener的invoke方法中,看起来结构比较清晰
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。