我正在研究使用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/