apache-poi - apache POI中HSSFWorkbook和Workbook的区别

标签 apache-poi

我正在研究使用apachePOI库读取/写入Excel,我发现了两种类型的解决方案,即一种使用HSSFWorkbook实现,另一种使用Workbook实现。现在我怀疑为什么有两种解决方案来实现单一功能。

我的代码:

FileInputStream fis=new FileInputStream("D:\\Extras\\SeleniumPractice\\TestData.xlsx");     
Workbook workbook=WorkbookFactory.create(fis);
Sheet sheet=workbook.getSheet("TestData");

当我搜索时:

FileInputStream file = new FileInputStream(new File("C:\\test.xls"));

             
//Get the workbook instance for XLS file 
HSSFWorkbook workbook = new HSSFWorkbook(file);

 
//Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);

预先感谢..:)

谢谢 马赫什

最佳答案

Workbook是通用接口(interface),适用于 HSSF (.xls) 和 XSSF (.xlsx)。如果我没记错的话,它是在 POI 3.5 中引入的。

如果您使用 Workbook 等通用接口(interface),则可以使用相同的代码透明地使用 HSSF 和 XSSF

如果您仅通过 HSSFWorkbook 为 HSSF 编码,您只能使用 .xls 文件。我建议您尽可能选择常见的

您的加载代码应该类似于:

 Workbook wb = WorkbookFactory.create(new File("test.xls"));
 Sheet s = wb.getSheetAt(0);
 ....

这将自动检测文件的类型,并根据找到的内容返回 .xls 或 .xlsx 的工作对象

关于apache-poi - apache POI中HSSFWorkbook和Workbook的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760416/

相关文章:

java - 使用 Apache POI 将工作簿的日期系统设置为 1904

java - .xls 使用 java 和 POI APACHE 转换为 xlsx

java - 如何使用 Apache POI 优化 Excel 工作簿

java - 使用 Apache POI 读取 excel

java - 计算使用 docx4j 编辑的 word 文件中的页数/行数

android - 使用 Apache poi 和 MS Excel 在 Android 应用程序中插入图像时出现 NoClassDefFoundError

java - 使用 Apache POI 将 byteArray 转换为 XSSFWorkbook

java:如何使用 apache poi 创建数据透视表?

java - 使用 Apache Poi 从 Excel 工作表获取单元格值

java - 如何将数据库写入和电子表格写入分组为单个 "transaction"