【问题标题】:What is the difference between poi and poi-ooxmlpoi和poi-ooxml有什么区别
【发布时间】:2020-02-13 22:54:53
【问题描述】:

我正在学习使用 Selenium 和 Excel 进行数据驱动测试。我正在参加一个在线课程,该课程要求用于在 Maven 中添加 Apache poi 和 poi-ooxml 依赖项。

我很难理解两者之间的区别。为了在 Excel 中检索数据并将这些数据传递给我们的测试,两者都需要吗?

谢谢

【问题讨论】:

  • the Apache POI website explanation 不会覆盖你吗?
  • 我已经看过了。目前尚不清楚这两个 JAR 之间有什么区别,因此我提出了问题。
  • 您想使用哪种文件格式?它列出了所有格式以及您需要哪些 jar ......
  • 那么导师导入这两个罐子的原因是因为使用了不同的Excel格式?这就是为什么我很困惑。讲师只使用 .xlsx 文件,所以我的困惑源于是否出于任何其他原因需要或依赖两个 jar。

标签: java selenium-webdriver apache-poi


【解决方案1】:

Excel 文件历史悠久

  • Excel 97-2003 工作簿:

    这是遵循二进制文件格式的旧版 Excel 文件。该格式的文件扩展名为 .xls。 Excel 97-2003 在 apache poi 方面被称为 - 可怕的电子表格格式 由于 Excel 文件格式复杂且包含许多棘手的特征, apache-poi jar 有处理这些文件的代码

  • Excel 2007+ 工作簿:

    这是 Excel 2007 及更高版本默认的基于 XML 的文件格式。它遵循 Office Open XML (OOXML) 格式,这是一种基于 XML 的压缩文件格式,由 Microsoft 开发,用于表示 Office 文档。该格式的文件扩展名为 .xlsx。 ( DOCX、PPTX 是其他基于 OOXML 的示例)。 apache poi 方面的 Excel 2007+ 工作簿称为 - XML 电子表格格式 - 这些文件格式是 HSSF 的高级版本并具有附加功能,处理这些文件的代码编写在 apache-poi-ooxml jar 中

  • 更多阅读

由于 .xls 几乎已死,但仍有一些应用程序使用它,因此为了向后兼容,两个依赖项都是必需的。 这是 Apache 不得不说的 -

  • HSSF Excel XLS poi 仅适用于 HSSF,如果需要通用 SS,请参见下文
  • 常见的SS Excel XLS和XLSX poi-ooxml WorkbookFactory和朋友 都需要 poi-ooxml,而不仅仅是核心 poi

您可以在他们的官方网站http://poi.apache.org/components/index.html#components阅读更多内容

【讨论】:

  • 谢谢 vh1ne。这解释得非常清楚,完全有道理。
  • 从 POI 4.1.2 开始,poi-ooxml 依赖于 poi。那么,是否仍然需要显式依赖它们以实现向后兼容性?
  • @SayakMukhopadhyay - 这不是因为向后兼容,而是因为公共基类/接口和其他共享类,它们驻留在 poi 工件中。
  • @kiwiwings 所以我相信如果我依赖poi-ooxml,那么依赖poi 并不是真正需要的,因为poi-ooxml 已经依赖于poi。我想如果我使用的 API 仅存在于 poi 中,我应该将其作为最佳实践。
  • @SayakMukhopadhyay 好的,我的评论有误 - 正如您所指出的,您不需要显式导入 poi(主)工件,maven 依赖项会处理这个问题。但是当不使用 maven 作为依赖机制时,你需要在 class-/modulepath 上同时拥有这两者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2018-01-18
相关资源
最近更新 更多