2015-03-19 50 views
0

我有下面的代码。类型不匹配:不能从HSSFWorkbook转换为工作簿

Workbook srcWorkBook; 
Workbook tgtWorkbook; 
if((src.substring(src.lastIndexOf("."),src.length()).equals(".xlsx"))){ 
    srcWorkBook=new XSSFWorkbook(excelFileSrc); 
}else{ 
    srcWorkBook=new HSSFWorkbook(excelFileSrc); 
} 

它是通过独立的文件运行正常,但我的蚂蚁在编译时会抛出错误

[javac] found : org.apache.poi.hssf.usermodel.HSSFWorkbook 
[javac] required: org.apache.poi.ss.usermodel.Workbook 

我检查我的类路径,它不具有罐的任何重复的实例。请帮助

回答

0

首先,错误建议你要么必须在classpath Apache主POI JAR的旧副本,或者使用不匹配的POI罐子。见this POI FAQ entry一段代码,可以帮助你跟踪你真正使用的是什么罐子,this POI FAQ entry以获得更多关于不支持的版本之间的混合POI罐子。

其次,你的代码本身是不理想的。相反,您应该使用WorkbookFactory为您实例化正确的Workbook类。更改代码,改为是:

Workbook srcWorkBook = WorkbookFactory.create(new File(excelFileSrc)); 

,将确定该文件类型适合你,创造合适的HSSFWorkbook一个或XSSFWorkbook

相关问题