Apache POI 4.x在这里。我看到Workbook
实现有两种类型:
我需要编写一个Java 8应用程序,以读取扩展名为“ .xls
”(XLS)或“ .xlsx
”(XLSX)的Excel工作表。意思是,以“旧”(2003年前)格式或较新的格式保存的Excel文件。
可以安全地假设我对XLS文件使用HSSF,对XLSX文件使用XSSF吗?还是那里的映射逻辑有点复杂? This answer似乎表明我是正确的,但这并不能使我完全确定我了解HSSF与XSSF的映射以及“何时使用”逻辑。
我已经搜查了POI文档,但是找不到我一生的明确答案。
请参见https://poi.apache.org/components/spreadsheet/
HSSF是POI项目的Excel的纯Java实现。'97(-2007)文件格式。 XSSF是POI项目的纯Java2007 OOXML(.xlsx)文件格式的实现。
另请参见https://www.tutorialspoint.com/apache_poi/apache_poi_overview.htm。
HSSF(org.apache.poi.hssf.usermodel
软件包)用于XLS文件格式
XSSF(org.apache.poi.xssf.usermodel
软件包)用于XLSX文件格式(较新的一种)
两个软件包(xssf和hssf)中的模型类都实现了org.apache.poi.ss.usermodel
软件包中的公共接口。因此,您可能可以使用ss
包编写代码,它将与xssf或hssf下的抽象一起使用。