编写大型 Excel 电子表格

Posted

技术标签:

【中文标题】编写大型 Excel 电子表格【英文标题】:writing large excel spreadsheets 【发布时间】:2009-12-03 19:17:59 【问题描述】:

有没有人找到一个可以很好地处理大型电子表格的库?

我已经尝试过 apache 的 POI,但它在处理大文件时惨遭失败 - 无论是读取还是写入。它使用大量内存,因此您需要一台超级计算机来解析或创建 20+mb 的电子表格。

肯定有更节省内存的方法并且有人写过吗?!

【问题讨论】:

您确定需要电子表格,而不是(嵌入式)数据库吗?或者甚至是 CSV? 好吧,那你几乎迷路了。或者,等等.. xlsx 是否允许?还是真的必须是xls xlsx 很好......任何可以有多个工作表、公式、格式等并在 excel 中打开的东西。 CSV 文件可以在 Excel 上打开。 我已更新 BigGridDemo 以支持多个工作表。回复 [***.com/questions/7274076/… [1]:***.com/questions/7274076/… 【参考方案1】:

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

我的解决方案是 Yegor Koslov 的 SheetWriter 类的扩展,请遵循此 http link,它对我来说效果很好。 如果您遇到任何问题,请告诉我。

~维克拉姆

【讨论】:

谢谢 vikram ...你的博文很有趣,我有时间会详细阅读。【参考方案2】:

我真的不能向你推荐图书馆。但是,当您需要最佳性能时,可能值得一试最初提出 Excel 的人。我猜想.NET 提供的 API 在处理 Excel 文件方面效率更高。因此,我们的想法是在 .NET 中实现 Web 服务或类似组件,为您完成大部分与 Excel 相关的 grunt 工作,然后从 Java 中调用它。

【讨论】:

这是最好的解决方案,因为之前她说不能是任何数据库或CSV,必须是excel。因此,如果您喜欢 Excel 并且无法使用其他任何东西,请使用 Microsoft 技术。 .NET 的东西真的很好用。【参考方案3】:

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

【讨论】:

【参考方案4】:

您是否尝试过JExcelAPI 作为 POI 的替代品?我承认我无法评论它的内存效率。

【讨论】:

很确定它一次读取整个工作表,这会遇到内存问题。 嗯,我认为问题是 与 POI 相比,JExcelAPI 在读取该电子表格方面的效率如何。【参考方案5】:

在发帖时,还没有纯 java 可扩展的解决方案来读写大型 excel 文件。

【讨论】:

对 xlsx 文件使用新的 SXSSF poi 3.8 ***.com/a/11919450/403999【参考方案6】:

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

【讨论】:

以上是关于编写大型 Excel 电子表格的主要内容,如果未能解决你的问题,请参考以下文章

Python,遍历 Excel 电子表格

使用VBA破解Excel电子表格密码

如何在不导入的情况下将excel电子表格导入anylogic数据库,即在主启动时使用代码

在跨平台 C# .NET 应用程序中导出到 Excel 电子表格

基于Web的JavaScript电子表格

在Excel中创建工作簿的默认名称是 excel是电子表格软件