错误:types不匹配:无法从HSSFWorkbook转换为工作簿

我使用poi-3.2-FINAL-20081019.jar 。 错误:

types不匹配:无法从HSSFWorkbook转换为工作簿

 try { if (strType.equals("xls")) { wb = new HSSFWorkbook(inputStream); } else { wb = new XSSFWorkbook(inputStream); } Sheet sheet = wb.getSheetAt(0); 

如何解决它?

由于在你的jar中的date显示 – poi-3.2-FINAL-20081019.jar – 你正在使用一个近10年的jar子! 你需要升级到更现代的东西,至less从这个十年的东西…

现在(2017年11月),最新版本是Apache POI 3.17。 您可以在Apache POI主页上find最新版本,并查看更改日志中的所有修复

另外,您应该交换使用WorkbookFactory,而不是查看文件扩展名来确定要使用的类。 这隐藏了你所有的检测复杂性,围绕错误的文件等工作

你的代码可以变得非常简单

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

(如果可以,请使用File ,而不要使用InputStream ,以降低内存)

使用更新的版本: https : //mvnrepository.com/artifact/org.apache.poi/poi/3.5-FINAL

阅读更多: http : //poi.apache.org/spreadsheet/converting.html