首页 文章

Apache POI,同时使用XSSF和HSSF

提问于
浏览
6

我有Apache POI项目的问题 .

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

我想同时处理 xlsxlsx 文件 . 当我得到excel版本错误时,我会将XSSF更改为HSSF或HSSF更改为XSSF .

我怎样才能做到这一点?

4 回答

  • 12

    除了"standard" 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.");
    }
    
  • 0

    使用工厂代替处理xssf和hssf

    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    
    Workbook wb = WorkbookFactory.create(new File("file"))
    
  • 0

    这对我有用:

    filePath = "C:\Users\user1\workspace\myproject\Excel.xlsx"
        String extension = FilenameUtils.getExtension(filePath);
        System.out.println(extension);
    
  • 5

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

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

相关问题