哪个是Java中Excel文件解析的更好的开源?

时间:2009-11-16 04:34:15

标签: java excel apache-poi

哪种API在Java Apache POI或JExcel API中进行excel解析更好? 在速度,内存利用率和代码稳定性方面。

4 个答案:

答案 0 :(得分:7)

我个人会推荐POI优于JExcel。我选择POI优于JExcelAPI的原因是:

  1. POI支持旧的和新的MS Excel工作表格式
  2. 它有一个更干净的API(imho)
  3. 据我所知,它并没有遭受JexcelApi所带来的恼人的Date \ Time问题(Date display)。
  4. 我有机会同时使用它们。在我看来,POI有一个经过深思熟虑且易于使用的API。从我的角度来看,最大的好处是你可以在工作表实例的创建过程中出厂,然后在usermodel接口的上下文中处理所有内容。这意味着您的代码可以处理旧的和新的Excel文件格式,而不必担心哪个是。

    此外,您还可以读取和写入相同的Worksheet实例。使用JExcelApi,在“可读”表和“可写”表之间存在这种奇怪的区分,我发现它很奇怪。这也导致我不得不在我的代码中引入杂乱的工作,从“阅读”转到“写作”。

    在旧的二进制文件(POI HSSF)和JExcelApi上,我没有注意到使用POI的有意义的性能差异。然而,POI HSSF(旧格式)和POI XSSF(新格式)之间存在显着的性能差异。我认为这是因为解压缩和解析XML所需的所有额外工作。

答案 1 :(得分:2)

我建议使用之前使用的Apache POI,特别是如果您支持Office 2007/8 OpenXML格式。 JExcel不支持这一点。 Apache POI还支持Office应用程序。

我无法对性能部分发表评论。但是,我确实有一个非常大的Excel文档(数百万列),但文件相对较小(几兆字节)。 POI确实花了几分钟来解析并修改它。但是,在这种情况下,Excel本身只需要几分钟就可以加载文档。

答案 2 :(得分:0)

Apache POI适用于最新格式,但速度快(解析)JExcel更好(JExcel不支持OpenXML格式,因为notnoop说)

答案 3 :(得分:0)

JExcelAPi优于Apache POI,但它不支持Excel 2007格式。