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

excel的大数据量用POI读取

阅读更多
excel的大数据量用POI写入 香菜个人博客

昨天刚解决了POI的大数据量写,今天又碰到一个问题,客户把50万的数据用excel传了过来T.T
普通的读取依然会OOM

无奈继续查资料。记得看到一篇文章上说XSSF默认用DOM解析XML的,那必然会OOM了,于是开始找用SAX读的例子,找到了应该比较经典的FromHowTo.java(http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/examples/FromHowTo.java)

用这个例子还是碰到了挺多问题
1. 写入的逻辑会嵌入到这个读取里..它并没有提供比较友好的getRow之类的一行一行处理的方法..导致我的代码写地很猥琐..
2. SharedStringsTable sst = r.getSharedStringsTable();这段代码依然会抛OOM. 看提问频道有一个哥们也碰到了同样的问题..都已经用SAX解析了还是OOM是挺尴尬的..目前的解决方法是开大了一些内存..- -..简单有效..基本上代码跑过了这行以后的读取就不怕OOM了..
分享到:
评论
6 楼 getclass 2011-04-04  
我最近也在搞这样的问题 我们还没有一个固定的excel上传模板 列的内容是一定的 但顺序不一定 现在没什么好的思路啊
5 楼 kimmking 2011-04-02  
yangyi 写道
他能写出来你就可以读出来,建议直接解析binary协议

office 97-2003是biff8的二进制格式

2007+是ooxml的文本格式
4 楼 yangyi 2011-04-02  
他能写出来你就可以读出来,建议直接解析binary协议
3 楼 kimmking 2011-04-02  
albb0608 写道
客户把50万的数据用excel传了过来,excel不是有65535条数限制吗,50万是怎么弄出来的。

office2007没有这个限制了。

可以直接把xlsx文件当zip解压出来xml文件自行处理。
2 楼 albb0608 2011-04-02  
客户把50万的数据用excel传了过来,excel不是有65535条数限制吗,50万是怎么弄出来的。
1 楼 liq_2001 2011-04-02  
我认为excel大数据量的读写是很糟糕的设计

相关推荐

    使用Poi读取大数据量excel的方法

    本篇文章将详细讲解如何利用Apache POI库在Android环境中高效地处理大数据量的Excel文件,无论是2003的.xls格式还是2007及以后的.xlsx格式。 首先,我们需要在项目中引入Apache POI库。如果是Maven项目,可以在pom....

    Java读取大数据量Excel的方法(POI)

    接下来,我们将详细讲解如何使用Apache POI读取大数据量的Excel文件: 1. **创建Workbook对象**:这是处理Excel文件的基础,它代表整个Excel工作簿。你可以通过`XSSFWorkbook`类的构造函数,传入文件的输入流来创建...

    java poi 导入大数据量Excel数据 防止内存溢出处理.zip

    然而,当处理大数据量的Excel文件时,POI可能会导致内存溢出(Out of Memory, OOM),因为默认情况下它会将整个工作簿加载到内存中。为了防止这种问题,我们需要采用优化策略来高效地处理大量数据。 1. **分块读取*...

    poi读取大数据量excel文件,避免内存溢出,行级操作

    poi读取大数据量excel文件,避免内存溢出,行级操作 根据本网站的资源修改的。 将一些类路径错误全部进行了修正。 另外,需要自己在类路径里,放spring-context.jar和spring-beans.jar包。

    使用POI导出大数据量到EXCEL

    "使用POI导出大数据量到EXCEL"这个主题涉及到如何高效地利用POI处理大量数据并将其导出到Excel文件中。以下是对这个主题的详细讲解。 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了Java API来创建、...

    poi 自己写的excel sax方式导入大量数据

    SAX(Simple API for XML)解析方式与DOM不同,它不会一次性加载整个文件到内存,而是逐行读取,只处理当前需要的数据,这极大地降低了内存使用,特别适合处理大数据量的Excel文件。 以下是一些关于使用Apache POI...

    poi大量数据读取gc内存溢出解决方案

    poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取为cvs即可.此解决方案可支持千万数据的...

    POI读取Excel带格式数据

    同时,要注意处理大数据量时的性能问题,例如使用`SXSSFWorkbook`来实现内存优化。 总之,Apache POI是Java开发人员处理Excel文件的强大工具,通过理解其API结构和工作原理,我们可以方便地读取和处理Excel中的带...

    POI实现大数据量的excel文件解析

    POI通过流式处理和分块读取策略,使得在Java中高效处理大数据量的Excel文件成为可能。 描述中提到的“源码运行所需要的lib包”,指示了我们需要从提供的链接下载依赖的库文件才能运行相关的Java代码。在Java开发中...

    poi excel 模板读取并导出带公式的excel文档

    - 考虑到性能问题,如果数据量非常大,可能需要采取分批次处理的方式。 - 对于复杂的公式,建议先在Excel中测试其正确性,再应用于模板文件中。 综上所述,通过使用Apache POI库结合Excel模板文件,可以高效地实现...

    POI百万级大数据量EXCEL导出 - 请叫我猿叔叔的博客 - CSDN博客.htm

    POI百万级大数据量EXCEL导出 - 请叫我猿叔叔的博客 - CSDN博客.htm

    java poi导出大量数据到Excel

    1. **内存优化**:当数据量非常大时,建议使用Apache POI提供的SXSSF类来降低内存占用。 2. **性能考虑**:在实际应用中,应尽可能减少对Excel文件的读写操作,避免频繁创建和销毁对象。 3. **异常处理**:在处理...

    poi解决读取excel大文件内存溢出的代码

    本资源是从之前的资源综合整理出来的代码,之前的代码不全,需要下载两次,为了减少用户的下载量,减少用户的下载资源分,我已经将代码整合好了,运行类为:com.telesound.dataimport.excel.TestReadExcel...

    Java通过POI读取Excel遍历数据,批量生成word文档

    本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...

    android POI 读取excel 精简jar

    在这个“android POI 读取excel 精简jar”中,我们看到了几个关键的库文件,它们是专门为Android环境优化的轻量级版本,以适应移动设备资源有限的情况。 1. **jxl.jar**: 这是JExcelAPI的库文件,一个早期的Java库...

    POI 3.8 Beta5 创建大数据量 Excel文件

    在POI 3.8 Beta5这个版本中,开发者可以利用它来处理大数据量的Excel文件,这在数据处理、报告生成或数据分析场景中非常有用。 Apache POI库提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...

    java excel大数据量导出demo,可支持模板导出

    在Java开发中,处理Excel大数据量的导出是一项常见的任务,尤其在数据分析、报表生成等领域。这个"java excel大数据量导出demo"提供了一个高效、灵活的解决方案,它支持模板导出,分页查询,以及处理大数据量的能力...

    poi excel poi excel poi excel

    #### 三、使用 POI 创建和读取 Excel 文件 为了使用 POI 操作 Excel 文件,首先需要准备以下环境: 1. **JDK 版本**:至少需要 JDK 1.4 或更高版本。 2. **POI 库**:下载 POI 库,可以从 Apache 官方网站获取:...

    读取大数据量的excel文件

    本案例采用的poi读取大数据的excel文件 usermodel模式对excel操作前需要将文件全部转入内存,对较大文件来说内存开销很大。但是其使用简单。 eventusermodel模式采用事件模型,对文件边读取边处理,内存消耗较低,...

    大数据Excel操作不会内存溢出POI

    同时支持Excel-2003和Excel-2007,excel-2003解析采用poi的eventusermodel模式实现,2007采用xmlreader实现,经项目验证,excel文件20W条数据没有任何问题,仅读取的话2-3分钟解析完毕。 网络上有关eventusermodel...

Global site tag (gtag.js) - Google Analytics