poi 和 poi-ooxml 有什么区别

6 java apache-poi selenium-webdriver

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

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

谢谢

小智 10

Excel 文件历史悠久

  • Excel 97-2003 工作簿:

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

在此处输入图片说明

  • Excel 2007+ 工作簿:

    这是 Excel 2007 和更高版本的默认基于 XML 的文件格式。它遵循 Office Open XML (OOXML) 格式,这是一种由 Microsoft 开发的基于 XML 的压缩文件格式,用于表示办公文档。该格式的文件扩展名为 .xlsx。( DOCX、PPTX 是其他基于 OOXML 的示例)。Excel 2007+ 工作簿在 apache poi 方面被称为 - 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阅读更多

  • @SayakMukhopadhyay 好的,我的评论是错误的 - 你不需要显式导入 poi (主)工件,正如你所指出的,maven 依赖项会处理这个问题。但是,当不使用 Maven 作为依赖机制时,您需要将两者都放在类/模块路径上。 (2认同)