触发场景描述 读多个sheet时(例如调用doReadAll),每当一个sheet里的所有数据解析完成了,调用com.alibaba.easyexcel.test.demo.read.DemoDataListener 的 doAfterAllAnalysed方法,saveData()存储完成之后也需要清理 list,否则list里面的数据会参杂在读下一个sheet的数据里面,导致重复插入数据。
使用时真实场景如下 有两个sheet,sheet1和sheet2,sheet1有88024条数据,BATCH_COUNT设置为1000,最后一次读是24条数据,调用doAfterAllAnalysed()之后,这24条saveData()已经入库,但是list没有清除。读sheet2时,list里面仍存在这24条数据,当读取sheet2的976条数据,list累计了1000条,此时入库的数据,这24条重复入库。 以此类推,读多个excel时,会存在多个 “零头” 重复入库的问题。
解决方法 在doAfterAllAnalysed 中 调用saveData()之后,和invoke方法一样,调用list.clear()清理一下