当前位置: 首页 > 面试题库 >

在Java中读取Excel工作表时出现NoSuchFieldError

楚健
2023-03-14
问题内容

我遵循了使用Apache POI
XSSF构造工作簿的简单指南。遵循相同的指南,我能够写出一张Excel工作表,但是,当尝试从其中读取数据时,我收到了代码后显示的错误。

码:

try {
    FileInputStream file = new FileInputStream(new File("howtodoinjava_demo.xlsx"));

    // Create Workbook instance holding reference to .xlsx file
    XSSFWorkbook workbook = new XSSFWorkbook(file);

    // Get first/desired sheet from the workbook
    XSSFSheet sheet = workbook.getSheetAt(0);

    // Iterate through each rows one by one
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();
        // For each row, iterate through all the columns
        Iterator<Cell> cellIterator = row.cellIterator();

        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            // Check the cell type and format accordingly
            switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC:
                System.out.print(cell.getNumericCellValue() + "t");
                break;
            case Cell.CELL_TYPE_STRING:
                System.out.print(cell.getStringCellValue() + "t");
                break;
            }
        }
        System.out.println("");
    }
    file.close();
} catch (Exception e) {
    e.printStackTrace();
}

错误输出:

线程“主”中的异常java.lang.NoSuchFieldError:org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:179)处的RAW_XML_FILE_HEADER
org.apache.poi.openxml4j.opc.internal.ZipHelper处的org.apache.poi.openxml4j.opc.ZipPackage。(ZipPackage.java:93)的.openZipStream(ZipHelper.java:228)org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:294)的.openZipStream(ZipHelper.java:228)在org.apache.poi.xssf.usermodel.XSSFWorkbook。(XSSFWorkbook.java:273)在org.apache.poi.xssf.usermodel.XSSFWorkbook。(XSSFWorkbook.java:273)在com.wtolliver.spring.test.ReadExcel。
com.wtolliver.spring.test.App.main上的readExcel(ReadExcel.java:18)(App.java:17)


问题答案:

环顾四周后。我浏览了有关APACHE
POI
的文档,发现这是常量之一(不是我知道这实际上意味着什么)。

但是最终,我意识到我使用的所有教程都是2014年以前的。

所以我只是将Maven POM更改为3.11版,同时具有apache-poi和的依赖关系poi-ooxml

现在正在工作。



 类似资料:
  • 问题内容: 我正在使用NetBeans 6.9.1使用Spring / Hibernet。我正在尝试读取Excel文件(.xlsx- Office 2007)。读取Excel文件的代码如下,使用来存储Excel工作表中的数据。 以下是我的方法,该方法调用上述方法以读取指定的Excel文件 在执行此代码时,将引发以下异常。 提供的数据似乎在Office 2007+ XML中。您正在调用POI中与OL

  • 我在SOAP UI工具中编写了groovy脚本,用于从excel工作表中读取值并执行SOAP UI xml,但每当运行脚本时,我都会遇到以下错误, 请帮帮我。我不明白这里缺少什么。我也添加了所有jar文件。 脚本为 错误:

  • 我可以知道如何从Katalon Studio的excel工作表中读取数据,以便从文件中读取APIendpoint以检查其输出吗? 如何用java编写代码来运行URL并验证来自APIendpoint的响应?

  • 似乎这里和这里已经有了答案,但是,这些解决方案都不适合我。 我正在努力 不管怎样,最后仍然包含第一张而不是第二张。我使用的是Python 3和Pandas 0.20。1(水蟒发行版)。我错过了什么?如何将第二张图纸加载到?

  • 如何在Katalon Studio中从excel工作表(工作表1、工作表2...等)中读取数据。我可以从一张表中读取数据。但是我面临着多张纸的困难。

  • 这是我的代码 错误如下: 线程“main”中出现异常Java . lang . nosuchfielderror:RAW _ XML _ FILE _ HEADER at org . Apache . poi . poi fs . FILE system . FILE magic .(FILE magic . Java:42)at org . Apache . poi . open XML 4j