类型不匹配:无法从 HSSFWorkbook 转换为 Workbook
Type mismatch: cannot convert from HSSFWorkbook to Workbook
我有下面的代码。
Workbook srcWorkBook;
Workbook tgtWorkbook;
if((src.substring(src.lastIndexOf("."),src.length()).equals(".xlsx"))){
srcWorkBook=new XSSFWorkbook(excelFileSrc);
}else{
srcWorkBook=new HSSFWorkbook(excelFileSrc);
}
通过独立文件 运行 是正确的,但是在我的 ant 编译过程中它抛出错误
[javac] found : org.apache.poi.hssf.usermodel.HSSFWorkbook
[javac] required: org.apache.poi.ss.usermodel.Workbook
我检查了我的类路径,它没有任何重复的 Jars 实例。请帮助
首先,该错误表明您的 class 路径上有主 Apache POI jar 的旧副本,或者正在使用不匹配的 POI jar。有关在不受支持的版本之间混合 POI jar 的更多信息,请参阅 this POI FAQ entry for some code that will help you track down what jar you are really using, and this POI FAQ entry。
其次,您的代码本身并不理想。相反,您应该使用 WorkbookFactory 为您实例化正确的工作簿 class。将您的代码更改为:
Workbook srcWorkBook = WorkbookFactory.create(new File(excelFileSrc));
这将为您识别文件类型,并为您创建 HSSFWorkbook
或 XSSFWorkbook
中正确的一个
我有下面的代码。
Workbook srcWorkBook;
Workbook tgtWorkbook;
if((src.substring(src.lastIndexOf("."),src.length()).equals(".xlsx"))){
srcWorkBook=new XSSFWorkbook(excelFileSrc);
}else{
srcWorkBook=new HSSFWorkbook(excelFileSrc);
}
通过独立文件 运行 是正确的,但是在我的 ant 编译过程中它抛出错误
[javac] found : org.apache.poi.hssf.usermodel.HSSFWorkbook
[javac] required: org.apache.poi.ss.usermodel.Workbook
我检查了我的类路径,它没有任何重复的 Jars 实例。请帮助
首先,该错误表明您的 class 路径上有主 Apache POI jar 的旧副本,或者正在使用不匹配的 POI jar。有关在不受支持的版本之间混合 POI jar 的更多信息,请参阅 this POI FAQ entry for some code that will help you track down what jar you are really using, and this POI FAQ entry。
其次,您的代码本身并不理想。相反,您应该使用 WorkbookFactory 为您实例化正确的工作簿 class。将您的代码更改为:
Workbook srcWorkBook = WorkbookFactory.create(new File(excelFileSrc));
这将为您识别文件类型,并为您创建 HSSFWorkbook
或 XSSFWorkbook
中正确的一个