繁体   English   中英

Apache POI,同时使用XSSF和HSSF

[英]Apache POI, using both XSSF and HSSF

我有Apache POI项目的问题。

我没能在“Same Java Class”中使用XSSFHSSF 我应该下载哪个jar或者我应该将哪些工件添加到maven中?

我想同时处理xlsxlsx文件。 当我得到excel版本错误时,我会将XSSF更改为HSSFHSSF更改为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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM