我在使用Apache POI项目时遇到了问题。
我无法在"同一个Java类中"同时使用XSSF
和HSSF
。我应该下载哪个jar或者将哪个artifact添加到maven中呢?
我想要同时处理xls
和xlsx
文件。当我遇到Excel版本错误时,我会将XSSF更改为HSSF或HSSF更改为XSSF。
我该如何做呢?
我在使用Apache POI项目时遇到了问题。
我无法在"同一个Java类中"同时使用XSSF
和HSSF
。我应该下载哪个jar或者将哪个artifact添加到maven中呢?
我想要同时处理xls
和xlsx
文件。当我遇到Excel版本错误时,我会将XSSF更改为HSSF或HSSF更改为XSSF。
我该如何做呢?
不要这样做,尝试使用新版本的Apache POI 3.7,它有一个SS包,可以处理HSSF和XSSF,而无需担心类型问题。
org.apache.poi
poi-contrib
3.7-beta3
然而,尽管如此,我的Java类仍然无法解析XSSFWorkbook?HSSFWorkbook()没有问题;Workbook[] wbs = new Workbook[] { new HSSFWorkbook(), new XSSFWorkbook() }; - Tim Tuckle除了“标准”的SS包解决方案外,您还可以使用if语句
来正确加载正确的工作簿格式
到工作簿接口
对象中,如下所示:
Workbook workbook; //<-Interface, accepts both HSSF and XSSF.
File file = new File("YourExcelFile.xlsx");
if (FileUtils.getFileExt(file).equalsIgnoreCase("xls")) {
workbook = new HSSFWorkbook(new FileInputStream(file));
} else if (FileUtils.getFileExt(file).equalsIgnoreCase("xlsx")) {
workbook = new XSSFWorkbook(new FileInputStream(file));
} else {
throw new IllegalArgumentException("Received file does not have a standard excel extension.");
}
IWorkbook
。 - Mariusz Ignatowiczimport org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
Workbook wb = WorkbookFactory.create(new File("file"))
filePath = "C:\Users\user1\workspace\myproject\Excel.xlsx"
String extension = FilenameUtils.getExtension(filePath);
System.out.println(extension);