文档章节

POI3.8 导出大数据excel(50万左右)

咖啡加糖
 咖啡加糖
发布于 2014/12/05 15:08
字数 324
阅读 71
收藏 1

POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好。3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。

    3.8版本的POI对excel的导出操作,一般只使用HSSFWorkbook以及SXSSFWorkbook,HSSFWorkbook用来处理较少的数据量,SXSSFWorkbook用来处理大数据量以及超大数据量的导出。

    HSSFWorkbook的使用方法和之前的版本的使用方法一致,这里就不在陈述使用方法了

    SXSSFWorkbook的使用例子如下:

import junit.framework.Assert;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
public static void main(String[] args) throws Throwable {
 Workbook wb = new SXSSFWorkbook(100); // keep 100 rows in memory, exceeding rows will be flushed to disk
 Sheet sh = wb.createSheet();
 for(int rownum = 0; rownum < 100000; rownum++){
 Row row = sh.createRow(rownum);
 for(int cellnum = 0; cellnum < 10; cellnum++){
 Cell cell = row.createCell(cellnum);
 String address = new CellReference(cell).formatAsString();
 cell.setCellValue(address); }
 }
FileOutputStream out = new FileOutputStream("/temp/sxssf.xlsx");
 wb.write(out);
 out.close();
}
以前还用xml来处理,现在3.8以上就好办了。
原文地址是:http://blog.sina.com.cn/s/blog_68555ee501015xk2.html
apache官网相关内容地址:http://poi.apache.org/spreadsheet/how-to.html#sxssf


© 著作权归作者所有

咖啡加糖

咖啡加糖

粉丝 17
博文 21
码字总数 18836
作品 0
南京
程序员
私信 提问
POI工具--POI读写大数据量EXCEL

另一篇文章http://www.cnblogs.com/tootwo2/p/8120053.html里面有xml的一些解释。 大数据量的excel一般都是.xlsx格式的,网上使用POI读写的例子比较多,但是很少提到读写非常大数据量的excel...

spinachgit
06/25
0
0
如何在代码里指定使用哪个jar的类呢?

项目经历了好几年,不断的加入jar包,现在项目里存在poi2.0和poi3.8的jar包,我想程序引用3.8的jar包的类,如何做啊。真纠结。。。。 想实现的功能:想使用POI 在excel插入图片。...

眯会
2012/12/06
297
7
POI 导出Excel 并且根据内容设置列宽自适应

强调的是设置自适应列宽:sheet.autoSizeColumn(i);只这样设置是没有很好的效果的。所以采取了以下两步: *1. sheet.autoSizeColumn(i);//先设置自动列宽 2. sheet.setColumnWidth(i,sheet....

文文1
05/17
0
0
[转]Java大数据量导出Excel的问题

试共同条件: 数据总数为110011条,每条数据条数为19个字段。 电脑配置为:P4 2.67GHz,1G内存。 一、POI、JXL、FastExcel比较 POI、JXL、FastExcel均为java第三方开源导出Excel的开源项目。...

大冬
2011/07/28
0
1
【求助】JAVA 生成word 图表(柱状图)

求大神解答,目前JAVA项目上需要生成一个word文件,其中含有图表(柱状图),POI3.8包貌似并不能搞定,求各位大神解答。如图: 如果能获取,并操作到这个类似excel中的数据,就好了~...

zeroGray
2017/03/12
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资...

须臾之余
今天
3
0
springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
昨天
4
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
昨天
3
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部