java - Apache POI HSSF/XSSF 到 XLS/XLSX 的映射

标签 java excel apache-poi xlsx xls

此处为 Apache POI 4.x。我看到有两种类型的 Workbook 实现:

  • HSSF 工作簿
  • XSSF 工作簿

我需要编写一个 Java 8 应用程序,用于读取扩展名为“.xls”(XLS) 或“.xlsx”(XLSX) 的 Excel 工作表。意思是,以“旧”(2003 年之前)格式或较新格式保存的 Excel 文件。

假设我对 XLS 文件使用 HSSF,对 XLSX 文件使用 XSSF 是否安全?或者那里的映射逻辑有点复杂? This answer似乎表明我是正确的,但这并没有让我完全确定我理解 HSSF 与 XSSF 的映射和“何时使用”逻辑。

我已经查阅了 POI 文档,但始终找不到明确的答案。

最佳答案

HSSF(org.apache.poi.hssf.usermodel包)适用于XLS文件格式

XSSF(org.apache.poi.xssf.usermodel 包)适用于 XLSX 文件格式(较新的格式)

两个包(xssf 和 hssf)中的模型类实现 org.apache.poi.ss.usermodel 中的通用接口(interface)包裹。因此,您可能可以使用 ss 编写代码包,它将与 xssf 或 hssf 上的抽象一起使用。

关于java - Apache POI HSSF/XSSF 到 XLS/XLSX 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58883341/

相关文章:

excel - 在表单事件后面将 Access 数据传输到 Excel 模板表中

excel公式将分钟转换为百分之一

excel - 如何使用excel vba将一个事件分配给多个对象?

java - XSSF 无法复制样式 (POI)

java - HSSFWorkbook 对象不保留通过不同方法添加到其中的工作表

java - 如何从 Liquibase 变更日志为 Testcontainers 构建 Docker 镜像?

java - 如何模拟由MyBatis初始化的接口(interface)的引用?

Java Bean 不被识别

java - Browser#getText() 返回空字符串

java - 如何在 Java Apache POI 库中使用嵌入式方程?