代码之家  ›  专栏  ›  技术社区  ›  Tim Tuckle

Apache POI,使用XSSF和HSSF

  •  7
  • Tim Tuckle  · 技术社区  · 14 年前

    我对Apache POI项目有问题。

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

    我想两者兼顾 xls xlsx 同时保存文件。当我得到Excel版本错误时,我将更改 XSSF至HSSF HSSF至XSSF .

    我该怎么做?

    4 回复  |  直到 6 年前
        1
  •  12
  •   evilReiko    14 年前

    与其这样做,不如尝试使用ApachePoi3.7的新版本,它有SS包,可以处理HSSF和XSSF,而不必担心类型。

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

        2
  •  5
  •   CosmicGiant    12 年前

    除了“标准”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.");
    }
    
        3
  •  0
  •   Neuron MonoThreaded    7 年前

    使用处理XSSF和HSSF的工厂

    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    
    Workbook wb = WorkbookFactory.create(new File("file"))
    
        4
  •  0
  •   Hamid Raza Abdul    6 年前

    这对我很有用:

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