Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决Apache POI“工作簿”可能尚未初始化_Java_Spring Boot_Apache Poi - Fatal编程技术网

Java 如何解决Apache POI“工作簿”可能尚未初始化

Java 如何解决Apache POI“工作簿”可能尚未初始化,java,spring-boot,apache-poi,Java,Spring Boot,Apache Poi,我需要阅读excel文件,我正在使用JavaSpringBoot和ApachePOI。 他们告诉我们 在使用较新的.xlsx文件格式时,您将使用XSSF工作簿、XSSFSheet、XSSFRow和XSSFCell类。要使用旧的.xls格式,请使用HSSF工作簿、HSSF表、HSSFRow和HSSFCell类 这是我的代码: Workbook workbook; if (FileExtension == "xlsx"){ workb

我需要阅读excel文件,我正在使用JavaSpringBoot和ApachePOI。 他们告诉我们

在使用较新的.xlsx文件格式时,您将使用XSSF工作簿、XSSFSheet、XSSFRow和XSSFCell类。要使用旧的.xls格式,请使用HSSF工作簿、HSSF表、HSSFRow和HSSFCell类

这是我的代码:


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

现在我得到的工作簿可能尚未初始化。 如何解决这个问题?

试试这个

Workbook workbook = null;
试试这个

Workbook workbook = null;

未初始化。。你应该这样做

Workbook wb;

wb = Workbook.getWorkbook(new File("d:\\test\\book1.xls"));

未初始化。。你应该这样做

Workbook wb;

wb = Workbook.getWorkbook(new File("d:\\test\\book1.xls"));

我想你想表达的是

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

请注意代码中的注释,我相信您可以自己调查差异,这非常有帮助。

我想您要表达的是

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

请注意代码中的注释,我相信您可以自己调查差异,这非常有帮助。

我相信这是JVM问题的一部分,但有时初始化和声明是唯一的方法。 试试这个:

        if (FileExtension == "xlsx"){
               Workbook workbook = new XSSFWorkbook(excelFile);
        }
        else if (FileExtension == "xls"){
              Workbook workbook = new HSSFWorkbook(excelFile);
        }

Sheet datatypeSheet=workbook.getSheetA

我认为这是JVM问题的一部分,但有时初始化和声明是唯一的方法。 试试这个:

        if (FileExtension == "xlsx"){
               Workbook workbook = new XSSFWorkbook(excelFile);
        }
        else if (FileExtension == "xls"){
              Workbook workbook = new HSSFWorkbook(excelFile);
        }
Sheet datatypeSheet=工作簿。getSheetA提供当前版本。使用该类的create方法,不需要按文件扩展名确定文件格式XSSF或HSSF。WorkbookFactory.create方法根据找到的文件内容创建XSSF工作簿或HSSFWorkbook

使用以下工具也是如此:

...
Workbook workbook = WorkbookFactory.create(excelFile);
Sheet datatypeSheet = workbook.getSheetAt(0);
...
当前的apache版本提供。使用该类的create方法,不需要按文件扩展名确定文件格式XSSF或HSSF。WorkbookFactory.create方法根据找到的文件内容创建XSSF工作簿或HSSFWorkbook

使用以下工具也是如此:

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

您需要使用xmlbeans3.1而不是xmlbeans4.0。

您需要使用xmlbeans3.1而不是xmlbeans4.0。

错误:25,33 java:org.apache.poi.ss.usermodel.Workbook是抽象的;无法实例化你能在你的逻辑中尝试这个吗??我刚刚编辑了我的答案不幸的是,正如我前面提到的,我使用的是POI apache,而不是JExcelError:25,33 java:org.apache.POI.ss.usermodel.Workbook是抽象的;无法实例化你能在你的逻辑中尝试这个吗??我刚刚编辑了我的回答不幸的是,正如我前面提到的,我使用的是POI apache,而不是Jetcel