Java ApachePOI,同时使用XSSF和HSSF

Java ApachePOI,同时使用XSSF和HSSF,java,apache,apache-poi,xssf,hssf,Java,Apache,Apache Poi,Xssf,Hssf,我对Apache POI项目有问题 我未能在“同一Java类”中使用XSSF和HSSF。我应该下载哪个jar,或者应该将哪个工件添加到maven中 我想同时处理xls和xlsx文件。当我收到excel版本错误时,我会将XSSF更改为HSSF或将HSSF更改为XSSF 如何做到这一点?与其这样做,不如尝试使用Apache POI 3.7的新版本,它有一个SS包,可以处理HSSF和XSSF,而不必担心类型 此处的详细信息:除了“标准”SS软件包解决方案外,您还可以简单地使用if语句将正确的工作簿格式

我对Apache POI项目有问题

我未能在“同一Java类”中使用
XSSF
HSSF
。我应该下载哪个jar,或者应该将哪个工件添加到maven中

我想同时处理
xls
xlsx
文件。当我收到excel版本错误时,我会将XSSF更改为HSSF或将HSSF更改为XSSF


如何做到这一点?

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

此处的详细信息:

除了“标准”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.");
}

工作簿// 请使用同时处理xssf和hssf的工厂

import 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);

首先谢谢你的帮助。我查了你提到的那一页。好啊我在pom.xml中添加了下面的代码:org.apache.poi poi contrib 3.7-beta3,尽管如此,我的Java类仍然无法解析XSSFWorkbook?HSSF工作簿()上没有问题;工作簿[]wbs=新工作簿[]{new HSSFWorkbook(),new XSSFWorkbook()};XSSFWorkbook位于groupId:org.apache.poi,artifactId:poi ooxmlAnd
IWorkbook
中(如果使用NPOI)