首页 > 解决方案 > 如何解决 Apache POI“工作簿”可能尚未初始化

问题描述

我需要读取文件 excel,我正在使用 java spring boot,Apache poi。他们告诉我们

使用较新的 .xlsx 文件格式时,您将使用 XSSFWorkbook、XSSFSheet、XSSFRow 和 XSSFCell 类。要使用较旧的 .xls 格式,请使用 HSSFWorkbook、HSSFSheet、HSSFRow 和 HSSFCell 类。

这是我的代码:


    Workbook workbook;
            if (FileExtension == "xlsx"){
                workbook = new XSSFWorkbook(excelFile);
            }
            else if (FileExtension == "xls"){
                workbook = new HSSFWorkbook(excelFile);
            }
Sheet datatypeSheet = workbook.getSheetAt(0);

现在我得到“工作簿”可能尚未初始化。如何解决?

标签: javaspring-bootapache-poi

解决方案


当前apache poi版本提供WorkbookFactory。使用create该类的方法,无需通过文件扩展名确定文件格式(XSSF或)。HSSF这些WorkbookFactory.create方法正在创建XSSFWorkbookHSSFWorkbook依赖于找到的文件内容。

所以使用:

...
Workbook workbook = WorkbookFactory.create(excelFile);
Sheet datatypeSheet = workbook.getSheetAt(0);
...

推荐阅读