2009-12-03 67 views
3

有人发现一个能够与大型电子表格一起工作的库吗?编写大型excel电子表格

我已经尝试过Apache的POI,但它无法正常工作与大型文件 - 读和写。它使用大量的内存,让你需要一台超级计算机来解析或创建一个20 + MB的电子表格。

肯定有更高效的内存方式,有人写过它?

+0

您确定需要电子表格而不是(嵌入式)数据库吗?或者甚至可能是CSV? – BalusC 2009-12-03 23:13:39

+0

是的,我相信.. – pstanton 2009-12-04 01:13:17

+0

那么,你几乎失去了。或者,等等..是否允许'xlsx'?或者它真的是'xls'吗? – BalusC 2009-12-04 11:51:24

回答

0

在发布时,没有用于读取和写入大型excel文件的纯Java可伸缩解决方案。

+0

使用新的SXSSF poi 3.8 for xlsx文件http://stackoverflow.com/a/11919450/403999 – 2012-08-13 21:35:45

0

您是否试过JExcelAPI作为POI的替代方案?我承认我无法评论它的记忆效率。

+0

敢肯定它一次读取整个表,这会遇到内存问题。 – pstanton 2009-12-03 21:03:13

+0

嗯,我认为问题是*效率如何* JExcelAPI在阅读电子表格时,与POI相比。 – 2009-12-03 21:09:39

1

我真的不能向你推荐一个图书馆。但是当你需要最好的表现时,首先可能值得尝试去找那些提出Excel的人。我猜想.NET中可用的API在处理Excel文件方面效率更高。所以这个想法是在.NET中实现一个Web服务或类似的组件,它完成了大部分与Excel有关的grunt工作,并且只是从Java中调用它。

+0

+1好主意,但对于这个项目不现实。 – pstanton 2009-12-04 01:14:18

+0

这是最好的解决方案,因为早些时候她说它不能是任何类型的数据库或CSV,但必须是优秀的。因此,如果您爱上Excel并且无法使用其他任何软件,请使用Microsoft技术。 .NET的东西在一起真的很棒。 – Karl 2010-01-11 08:49:32

+0

谁是'她'? – pstanton 2010-01-28 05:15:31

1

这与Jannik's基本相同,但您可以使用Java COM Bridge直接从Java访问Excel API。我们在Word中取得了很好的成功。明显的缺点是它只能在Windows上运行。

-1

可能是CSV文件格式可以帮到你。你只需要用逗号分隔每个值,并用.csv扩展名保存文件。

2

@pstanton .. 我正在研究类似的解决方案,并能够编写大量的excel 2007文件,其中包含数百个从数据库导出的行。这里是链接到它: http://vikramvkamath.blogspot.com/2010/07/writing-large-excel-files-excel-2007.html

我的解决办法是在叶戈尔科思洛夫的SheetWriter类的扩展遵循这一http link和它的作品对我非常好。 如果您遇到任何问题,请告知我。

〜Vikram

+0

感谢vikram ...您的博客文章很有趣,当我找到时间时,我会详细阅读它。 – pstanton 2010-07-29 03:42:34

+0

欢迎您! – Vikram 2010-08-13 17:13:38