大数据量的excel文件读取——excel2007(含代码及示例)
excel2007文件格式与之前版本不同,之前版本采用的是微软自己的存储格式。07版内容的存储采用XML格式,所以,理所当然的,对大数据量的 xlsx文件的读取采用的也是XML的处理方式SAX。
??? 同之前的版本一样,大数据量文件的读取采用的是事件模型eventusermodel。usermodel模式需要将文件一次性全部读到内存中,07版的既然采用的存储模式是xml,解析用的DOM方式也是如此,这种模式操作简单,容易上手,但是对于大量数据占用的内存也是相当可观,在Eclipse中经常出现内存溢出。
??? 下面就是采用eventusermodel对07excel文件读取。
??? 同上篇,我将当前行的单元格数据存储到List中,抽象出 optRows 方法,该方法会在每行末尾时调用,方法参数为当前行索引curRow(int型)及存有行内单元格数据的List。继承类只需实现该行级方法即可。
?
??? 经测试,对12万条数据,7M大小的文件也能正常运行。无需设置vm的内存空间。
?
??? excel读取采用的API为POI3.6,使用前先下载此包,若运行中出现其他依赖包不存在,请下载相应依赖包。
?
抽象类:XxlsAbstract ,作用:遍历excel文件,提供行级操作方法 optRows
?
继承类:XxlsBig,作用:将数据转出到数据库临时表
?继承类:XxlsPrint,作用:将数据输出到控制台
?源代码在附件中,还包含了说明文件、数据库配置文件、以及整合xls文件和xlsx文件读取的类:Xls2Do。