Java Apache POI 或 JExcel API 中哪个更好的 API 解析?在速度、内存利用率和代码稳定性方面。
4 回答
我个人会推荐 POI 而不是 JExcel。我选择 POI 而不是 JExcelAPI 的原因是:
- POI 支持新旧 MS Excel 工作表格式
- 它有一个更清洁的 API(恕我直言)
- 据我所见,它不会受到 JexcelApi 所具有的恼人的 Date\Time 问题(日期显示)的影响。
我有机会同时使用两者。在我看来,POI 有一个经过深思熟虑且易于使用的 API。从我的角度来看,最大的好处是您可以工厂化工作表实例的创建,然后在用户模型界面的上下文中处理所有事情。这意味着您的代码可以同时处理新旧 Excel 文件格式,而不必担心哪个是哪个。
此外,您可以读取和写入相同的 Worksheet 实例。使用 JExcelApi,“可读”表和“可写”表之间存在这种非常奇怪的分裂,我觉得这很奇怪。这也导致我不得不在我的代码中引入混乱的工作来从“阅读”转向“写作”。
我没有注意到在旧的二进制文件 (POI HSSF) 和 JExcelApi 上使用 POI 的有意义的性能差异。然而,POI HSSF(旧格式)和 POI XSSF(新格式)之间存在显着的性能差异。我认为这是因为解包和解析 XML 所需的所有额外工作。
我推荐使用我之前使用过的 Apache POI,尤其是在您支持 Office 2007/8 OpenXML 格式的情况下。JExcel 不支持。Apache POI 还支持 Office 应用程序。
我无法评论性能部分。但是,我确实有一个非常大的 Excel 文档(数百万列),但文件相对较小(几兆位)。POI 确实需要几分钟来解析和修改它。但是,在这种情况下,Excel 本身只需要几分钟来加载文档。
Apache POI 对最新格式很好,但速度方面(解析)JExcel 更好(JExcel 不支持 OpenXML 格式,正如 notnoop 所说)
JExcelAPi 优于 Apache POI,只是它不支持 Excel 2007 格式。