阅读背景:

poi读取海量excel,SAX(Simple API for XML)方式读取——对于为空值的单元格会跳过读取的解决方案

来源:互联网 

        之前有一个处理10W条数据的excel文档,其大概有21列,若是采用普通的方式去读取一定会内存溢出,而去改变jvm的内存大小,当数据量达到100W条甚至1000W条时,所需的内存大小也不好计算。当时我在网上找到一篇博文,其采用的是SAX(Simple API for XML)的方式去解析excel,可以做到读取所有行的数据,但是它的缺点是会跳过为空值的单元格。当时我走了几遍代码,又查了一些资料,想到的方式就是获取单元格的坐标,以读取的前后两个单元格的坐标去判断是否跳过了单元格。比如如果读到的前一个单元格为D5,而紧接着读到的是D7,那么D6这个单元格一定就是空的,被跳过了,当然也会存在连续多个空的单元格的情况,所以计算出跳过了几个空的单元格,然后手动给这些空的单元格所对应的对象复制,并手动给索引加上数字,就可以完成解析为空值的单元格会跳过的缺憾了。        之前有一个处理10W条数据的excel文档,其大概有21列,若是采用普通的方式




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: