`
jysboy
  • 浏览: 10614 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

解决大批量数据导出Excel产生内存溢出的方案

阅读更多

转自:http://www.iteye.com/topic/240053

POI或者JXL在导出大量数据的时候,由于它们将每一个单元格生都成一个Cell对象,所以很容易导致内存溢出。解决这个问题,唯一的办法是弄清楚Excel的二进制格式(汗),并且用流的方式读写Excel。POI和JXL其实提供了二进制方式读写Excel的API,只是因为缺少文档和实例,所以使用的人不多。我编写了这个简单的合并Excel的类,它只适合合并结构相同的多个Excel文件。好在这个功能已经可以解决数据导出产生OOM的问题:将数据分批导出然后合并。 
下面的代码使用POI3.1,合并11个3000多行的文档用时约6秒,我实在找不到更多的测试用的文档了。

分享到:
评论

相关推荐

    java解决大批量数据导出Excel产生内存溢出的方案

    在Java开发中,当面临大批量数据导出到Excel文件时,可能会遇到内存溢出的问题。这是因为Excel文件格式本身的设计,以及Java默认处理大数据的方式,可能导致内存占用过高,尤其是在一次性加载大量数据到内存中进行...

    大批量excel导出下载

    这个标题和描述提到的是一个针对批量导出Excel的工具类,它包括了两个核心类:`ExcelReader.java` 和 `ExcelWriter.java`,以及关于大批量导出的解决方案。下面将详细解释这些知识点。 1. **ExcelReader.java**: 这...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...

    java多线程导出excel(千万级别)优化

    Java多线程导出Excel是处理大数据量时的一种高效策略,尤其在面对千万级别的数据时。传统的Apache POI库在处理大规模数据时可能会遇到栈溢出(StackOverflowError)和内存溢出(OutOfMemoryError)等问题,因为这些...

    java中使用poi导出Excel大批量数据到客户端

    在java web系统应用中我们经常会用到大批量数据的导出,动辄就上几十万几百万的数据让我们的程序感觉压力很大,甚至都出现无法导出的情况,如内存溢出等。 java中使用poi导出Excel大批量数据到客户端 存在两个导出...

    easyExcel实现大数据导出

    `easyExcel`是专门为处理大量数据设计的一个轻量级工具,它能够有效地解决内存溢出问题,特别适合大数据量的Excel读写操作。下面将详细阐述`easyExcel`的核心功能、使用方法以及如何实现大数据导出。 `easyExcel`的...

    poi_模板导出excel,支持百万级数据模板导出

    poi导入、导出,支持百万级数据模板导出、合并excel。项目为spring-boot-2上开发。resource里面有模板,在junit...注意此版本不支持分页导出,一次性导出大批量数据也会出现内存溢出问题,最新上传的版本支持分页导出,

    Excel大批量导入导出解决方案.docx

    ### Excel大批量导入导出解决方案 #### 概述 在处理大规模Excel文件的过程中,经常会遇到内存溢出或者频繁Full Garbage Collection (FGC)的问题,这些问题通常与Java中使用Apache POI库操作Excel文件的方式有关。...

    CSV大数据分批并压缩导出

    总的来说,CSV大数据分批并压缩导出是一种实用且高效的解决方案,特别适用于需要处理海量数据且内存资源有限的环境。它结合了分批处理的内存管理策略和压缩技术的空间优化,确保了大数据操作的可行性和性能。

    java实现csv导出千万级数据实例

    本实例聚焦于“java实现csv导出千万级数据实例”,旨在提供一个高效、稳定的解决方案,避免因数据量过大而导致的性能问题,如Java中的栈溢出(Stack Overflow)。CSV(Comma Separated Values)格式因其简单、通用性...

    [rar文件] java导出100万以上excel大数据样例

    1、 大数据导出excel文件; 2、 Excel导出大数据时内存溢出; 二、思路:将数据存储到一个.xls的文件内,实际写入的是可以通过excel打开的html文本文件。由于文本文件可以进行续写,可以避免内存溢出。 三、优点:...

    真香!Java 导出 Excel 表格竟变得如此简单优雅

    poi 和 jxl 对内存的消耗很大,在处理大批量的数据时,容易造成内存溢出。比如处理一个 3M 的 Excel,poi 和 jxl 可能需要上百兆的内存,但 easyexcel 可能只需要几百或几千 KB(内存消耗对比有些夸张)。在性能这...

    Android-Android使用jxl快速导出excel表

    本文将详细探讨如何在Android应用中使用jxl库快速导出Excel表格。 首先,我们需要理解jxl库的基本概念。jxl是一个Java API,它支持Microsoft Excel 97-2004的文件格式(.xls)。通过jxl,我们可以创建新的工作簿、...

    Java使用POI导出大数据量Excel的方法

    在Java开发中,导出大数据量的Excel文件可能会面临内存溢出的问题,特别是在使用Apache POI库时。这是因为默认情况下,POI会将整个Excel工作簿存储在内存中,当数据量过大时,内存消耗非常显著,可能导致系统崩溃。...

    excel java中导入导出

    博文链接提供的资源“数据大批量导出(有代码有真相).docx”可能包含具体的示例代码和实践案例,可以作为学习和参考的依据。通过深入研究这些示例,开发者能够更好地掌握如何在Java中高效地进行Excel文件的导入导出。

    Java实现excel大数据量导入

    Java实现Excel大数据量导入是一项常见的任务,特别是在处理企业级数据导入导出时。Apache POI 是Java中广泛使用的库,用于处理Microsoft Office格式的文件,包括Excel。然而,当涉及大量数据时,直接使用POI的用户...

    NPOI 2.0 DLL文件

    3. **大批量数据导出**:对于大数据量的应用场景,NPOI能有效地处理和导出大量数据,通过优化内存管理和流式处理,避免了内存溢出问题。这对于需要快速生成报表或分析结果的系统来说,是非常有用的。 4. **跨平台...

    sql数据导入到access,和xml等文件中

    另外,大批量数据导入可能需要考虑分批处理,以避免内存溢出或锁表问题。 总的来说,数据库的转换和数据迁移是IT工作中不可或缺的部分,涉及数据集成、ETL(抽取、转换、加载)流程以及跨平台的兼容性问题。熟练...

Global site tag (gtag.js) - Google Analytics