Java poi和poi ooxml之间的区别是什么

Java poi和poi ooxml之间的区别是什么,java,selenium-webdriver,apache-poi,Java,Selenium Webdriver,Apache Poi,我正在学习使用Selenium和Excel进行数据驱动测试。我正在学习一门在线课程,该课程要求在Maven中添加ApachePOI和POIooXML依赖项 我正在努力理解两者之间的区别。要在Excel中检索数据并将其传递给我们的测试,这两者都是必需的吗 谢谢Excel文件历史悠久 Excel 97-2003工作簿: 这是一个遵循二进制文件格式的旧版Excel文件。该格式的文件扩展名为.xls。 Excel 97-2003在apache poi中被称为-可怕的电子表格格式,因为Excel文件格式

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

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


谢谢

Excel文件历史悠久

  • Excel 97-2003工作簿:

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

  • Excel 2007+工作簿:

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

  • 更多阅读
因为.xls基本上已经死了,但仍有一些应用程序使用它,所以为了实现backword兼容性,需要两个依赖项。 以下是Apache必须要说的-

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

你可以在他们的官方网站上阅读更多内容

不包括你吗?我已经看过了。现在还不清楚这两个JAR之间的区别,因此我的问题是,您希望使用哪种文件格式?它列出了所有的格式以及您需要哪些JAR…那么讲师之所以导入这两个JAR是因为使用了不同的Excel格式?这就是我感到困惑的原因。讲师只使用.xlsx文件,因此我的困惑源于是否出于任何其他原因需要或依赖这两个JAR。谢谢。从POI 4.1.2开始,
POI ooxml
依赖于
POI
。那么,是否仍然需要显式地依赖这两个类来实现向后兼容性?@SayakMukhopadhyay-这不是因为向后兼容性,而是因为公共基类/接口和其他共享类,它们驻留在poi工件中。@kiwiwings,因此我相信如果我依赖于
poi ooxml
,那么依赖于
poi
并不是真的需要,因为
poi ooxml
已经依赖于
poi
。我想如果我使用的API只存在于
poi
中,我应该把它作为最佳实践。@sayakmukhopadhayay好的,我把你的评论搞错了-你不需要显式导入poi(main)工件,正如你所指出的,maven依赖关系会解决这个问题。但是,如果不使用maven作为依赖机制,则需要在类-/modulepath上同时使用这两种机制。