我在使用apachePOI库研究excel的读写时,发现了两种解决方案,一种是用HSSFWorkbook实现的,另一种是用工作簿实现的。现在我怀疑为什么有两种解决方案来实现单一功能。
我的代码:
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);
先谢谢你..:)
谢谢Mahesh
发布于 2013-09-12 09:40:21
Workbook是通用接口,既适用于HSSF (.xls),也适用于XSSF (.xlsx)。如果我没记错的话,它是在POI 3.5中引入的。
如果您使用像Workbook这样的公共接口,您可以让相同的代码透明地与HSSF和XSSF一起使用
如果只通过HSSFWorkbook为HSSF编写代码,则只能处理.xls文件。我建议你尽可能选择普通的。
您的加载代码应该类似于:
Workbook wb = WorkbookFactory.create(new File("test.xls"));
Sheet s = wb.getSheetAt(0);
....
这将自动检测文件的类型,并根据找到的内容返回.xls或.xlsx的工作对象
发布于 2013-09-12 09:39:06
我知道的主要区别是
Workbook是一个接口,而HSSFWorkbook、SXSSFWorkbook、XSSFWorkbook是实现Workbook接口的类。
公共接口工作簿工作簿的高级表示。这是大多数用户在阅读或编写工作簿时都会构造的第一个对象。
公共最终类HSSFWorkbook扩展了POIDocument实现工作簿的.xls工作簿的高级表示。无论是阅读还是编写.xls工作簿,这都是大多数用户都会构造的第一个对象。
有关详细信息,请参阅POI api docs
发布于 2017-01-24 13:07:49
什么是Apache POI?
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文件。
https://stackoverflow.com/questions/18760416
复制