利用apache的poi来读取海量两种格式的Excel文件

2016-10-23

    这篇博客csdn进行的是同步发布,原生博客在博主oschina博客下,地址:https://my.oschina.net/u/2970247/blog/772756

    这篇博客只讲读取Excel的操作,海量数据写入Excel的操作可以去学习poi下的SXSSFWorkbook

    在做用apache下的poi来读取Excel文件时,在网上也找过许多的资料,大部分都是相互copy,或者直接从别的地方直接copy过来的,很容易让读者产生疑惑和误导。抽了个时间,在这里做一个小小的总结,好能帮助到看到这篇博客的人(不打算在这篇博客中附代码,我会告诉代码的地址)

    jar包:

    在工程中只需要引入poi-ooxml就可以,poi和poi-ooxml-schemas包maven会自动导入

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.15</version>
        </dependency>

    利用poi来读取Excel文件,有一点明确的就是:有两种方式可以读取Excel。

    第一种:用户模式,也就是poi下的usermodel有关包,它对用户友好,有统一的接口在ss包下(可以用WorkBookFactory类),但是它是把整个文件读取到内存中的,对于大量数据很容易内存溢出,所以只能用来处理相对较小量的数据。

    第二种:事件模式,在poi下的eventusermodel包下,它比较复杂,而且对于“.xls”和“.xlsx”两种格式的Excel文件没有统一的接口,但是它处理速度快,占用内存少,可以用来处理海量的Excel数据

    废话不多说了,直接上代码地址:

    针对“.xls”格式的Excel:https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/hssf/eventusermodel/examples/XLS2CSVmra.java

这个是官网给的把大量Excel数据转化成CSV格式数据的例子,你会发先这个例子和网上很多地方都差不多一样,毫无疑问,都是copy官网的这个例子,一点责任心都没有。

    针对“.xlsx”格式的Excel:

https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java

这个例子也是官网给的例子,把大量的Excel数据转化成CSV格式数据的例子

    两个例子当中都有如何读取海量Excel数据的操作,直接忽略掉转化CSV的过程就好,代码的阅读就需要你自己去慢慢来了呀!祝你好运!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值