首页
学习
活动
专区
工具
TVP
发布

POI性能
EN

Stack Overflow用户
提问于 2010-03-23 16:54:43
回答 3查看 29.5K关注 0票数 20

我在我的J2EE web应用程序中使用POI来生成工作簿。然而,我发现POI大约需要3分钟来创建一个25K行(每行15列)的工作簿。这是POI性能问题,还是花费那么多时间是合理的?有没有其他性能更好的API?

EN

回答 3

Stack Overflow用户

发布于 2014-07-07 19:49:20

如果您使用“流式”POI API而不是标准的POI API,则使用POI写入大文件的性能可能会大大降低。事实上,在默认情况下,POI会将所有数据保存在内存中,然后在结束时一次性写入所有数据。对于大文件来说,这样的内存占用可能大得离谱。取而代之的是使用流API,您可以控制内存的使用方式,以及如何逐步将数据写入磁盘。

要创建流工作簿,请使用以下内容:

代码语言:javascript
复制
  SXSSFWorkbook book = new SXSSFWorkbook(); 
  book.setCompressTempFiles(true);

  SXSSFSheet sheet = (SXSSFSheet) book.createSheet();
  sheet.setRandomAccessWindowSize(100);// keep 100 rows in memory, exceeding rows will be flushed to disk
  // ...
票数 19
EN

Stack Overflow用户

发布于 2010-03-23 18:00:30

如果其他答案都不起作用,看看Andy Khan的JExcel会不会更好。我发现在处理Java中的Excel时,它比POI要好得多。

票数 3
EN

Stack Overflow用户

发布于 2010-03-23 17:46:38

我们还在我们的web应用程序中使用POI,并且没有任何性能问题-尽管我们生成的文档比您的小得多。我首先要检查POI是否是这里的真正问题。尝试在没有J2EE开销(单元测试)的情况下生成这些文档,并测量性能。您还可以监视J2EE服务器上的负载和内存使用情况,以查看问题是否来自某些不太理想的系统设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2498536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档