首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apache POI中HSSFWorkbook与Workbook的区别

apache POI中HSSFWorkbook与Workbook的区别
EN

Stack Overflow用户
提问于 2013-09-12 17:26:12
回答 3查看 47K关注 0票数 15

我在使用apachePOI库研究excel的读写时,发现了两种解决方案,一种是用HSSFWorkbook实现的,另一种是用工作簿实现的。现在我怀疑为什么有两种解决方案来实现单一功能。

我的代码:

代码语言:javascript
复制
FileInputStream fis=new FileInputStream("D:\\Extras\\SeleniumPractice\\TestData.xlsx");     
Workbook workbook=WorkbookFactory.create(fis);
Sheet sheet=workbook.getSheet("TestData");

当我搜索的时候:

代码语言:javascript
复制
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);

先谢谢你..:)

谢谢Mahesh

EN

回答 3

Stack Overflow用户

发布于 2013-09-12 17:40:21

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

如果您使用像Workbook这样的公共接口,您可以让相同的代码透明地与HSSF和XSSF一起使用

如果只通过HSSFWorkbook为HSSF编写代码,则只能处理.xls文件。我建议你尽可能选择普通的。

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

代码语言:javascript
复制
 Workbook wb = WorkbookFactory.create(new File("test.xls"));
 Sheet s = wb.getSheetAt(0);
 ....

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

票数 40
EN

Stack Overflow用户

发布于 2013-09-12 17:39:06

我知道的主要区别是

Workbook是一个接口,而HSSFWorkbook、SXSSFWorkbook、XSSFWorkbook是实现Workbook接口的类。

公共接口工作簿工作簿的高级表示。这是大多数用户在阅读或编写工作簿时都会构造的第一个对象。

公共最终类HSSFWorkbook扩展了POIDocument实现工作簿的.xls工作簿的高级表示。无论是阅读还是编写.xls工作簿,这都是大多数用户都会构造的第一个对象。

有关详细信息,请参阅POI api docs

票数 10
EN

Stack Overflow用户

发布于 2017-01-24 21:07:49

什么是Apache POI?

代码语言:javascript
复制
Apache POI is a popular API that allows programmers to create, modify, 
and display MS Office files using Java programs. 

Apache POI是Apache Software Foundation提供的100%开源库。

工作簿

这是创建或维护Excel工作簿的所有类的超级接口。它属于org.apache.poi.ss.usermodel包。实现此接口的两个类如下所示:

(1)。HSSFWorkbook:该类具有读写.xls格式的Microsoft Excel文件的方法。

(2).XSSFWorkbook:这个类具有读写.xls或.xlsx格式的Microsoft Excel和OpenOffice xml文件的方法。

HSSFWorkbook

它是org.apache.poi.hssf.usermodel包下的一个高级类。它实现了工作簿接口,用于.xls格式的Excel文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18760416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档