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:
这个例子也是官网给的例子,把大量的Excel数据转化成CSV格式数据的例子
两个例子当中都有如何读取海量Excel数据的操作,直接忽略掉转化CSV的过程就好,代码的阅读就需要你自己去慢慢来了呀!祝你好运!