我有与Apache POI项目的问题。

我没有使用XSSFHSSF “同一个Java类”即可。这罐子我应该下载或我应该加入到其中的Maven神器?

我想在同一时间同时处理xlsxlsx文件。当我收到Excel版本错误,我会改变的 XSSF到HSSF 的或 HSSF到XSSF 的。

我怎样才能做到这一点?

有帮助吗?

解决方案

代替这样做的,尝试使用Apache POI 3.7的新版本,它具有SS包,它可以同时处理HSSF和XSSF无需担心型

详细这里: http://poi.apache.org/spreadsheet/index.html

其他提示

除了“标准” SS包溶液,也可以简单地使用一个if statement向右workbook format正确地加载到Workbook 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.");
}

使用工厂代替它处理两个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);
scroll top