java poi excel 导出_Java poi Excel导出文件,Java poi 分批次导出大批量数据

Java poi Excel导出文件,Java poi 分批次导出大批量数据

================================

©Copyright 蕃薯耀 2018年6月26日

http://fanshuyao.iteye.com/

一、问题描述:

1、当使用WorkbookFactory.create 创建Excel时,其实创建的文档为Excel2003版的,最大容纳65536行数据,超出这个行数就是发生溢出。

WorkbookFactory.create(...);

2、当数据量时,直接从数据库查询出来,内存不够也会溢出。

二、解决方案:

1、解决Excel2003行数溢出,使用XSSFWorkbook对象创建2007版的Excel,能容纳104万行数据。

具体如下:

Excel2003版最大行数是65536,Excel2007最大行数是1048576

Excel2003版最大列数是256,Excel2007最大列数是16384

XSSFWorkbook xSSFWorkbook = new XSSFWorkbook(new FileInputStream(excelTemplatePath));//使用模板文件

2、直接从数据库查询大批量数据导致内存溢出,可以使用分批次的方式查询数据,避免内存一下子暴掉。如要导出数据库100万条数据,每次取1万条,这样分100次取,每次取的数量自己可以定义,保证内存不溢出。

具体例子和代码:

/**

* 导出excel文件

* @param request

* @param response

* @throws Exception

*/

public void exportPlaceNameQueryExcelFile(HttpServletRequest request,HttpServletResponse response){

Map map = new HashMap();;

FileOutputStream fileOutputStream = null;

try {

Row row = parseRequestParametersToRow(request);

String projectPath = getRealPath(request);

String excelTemplatePath = projectPath + File.separator

+ "template" + File.separator + "name" + File.separator

+ "exportPlaceNameQueryExcelFile.xlsx";

File excelTemplateFile = new File(excel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值