Apache POI,同时使用XSSF和HSSF

Tim*_*kle 7 java apache hssf apache-poi xssf

我有Apache POI项目的问题.

我没有使用XSSF,并HSSF"同一个Java类".我应该下载哪个jar或者我应该将哪些工件添加到maven中?

我要同时处理xls,并xlsx在同一时间的文件.当我得到excel版本错误时,我会将XSSF更改为HSSFHSSF更改为XSSF.

我怎样才能做到这一点?

evi*_*iko 12

不要这样做,尝试使用Apache POI 3.7的新版本,它有SS包,可以处理HSSF和XSSF而不用担心类型

详情请访问:http://poi.apache.org/spreadsheet/index.html

  • XSSFWorkbook位于groupId:org.apache.poi,artifactId:poi-ooxml (5认同)

Xen*_*oRo 5

除了"标准"SS包解决方案之外,您还可以简单地使用an if statement来正确地将权限加载workbook formatWorkbook interface对象中,如下所示:

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.");
}
Run Code Online (Sandbox Code Playgroud)