我有以下代码。
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实例。请帮忙
答案 0 :(得分:0)
首先,该错误表明您在类路径上有一个较旧的主Apache POI jar副本,或者使用了不匹配的POI jar。有关可帮助您追踪实际使用的jar的代码,请参阅this POI FAQ entry,有关在不受支持的版本之间混合POI jar的更多信息,请参阅this POI FAQ entry。
其次,您的代码本身并不理想。相反,您应该使用WorkbookFactory为您实例化正确的Workbook类。将代码更改为:
Workbook srcWorkBook = WorkbookFactory.create(new File(excelFileSrc));
这将为您识别文件类型,并为您创建HSSFWorkbook
或XSSFWorkbook
中的正确文件类型