java - 使用apache poi库时如何修复NoClassDefFoundError?

标签 java apache-poi noclassdeffounderror

`我正在尝试读取 Excel 文件。我不确定我在这里缺少什么。但我在下面附加了错误。我的变量书还表明,即使在下一行中使用了该变量,也从未使用过该变量。我认为它以某种方式相关,但不确定如何。 非常感谢任何帮助。

错误:无法初始化主类 myExcelProject.MyExcelFileReader 引起原因:java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Workbook `

package myExcelProject;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class MyExcelFileReader {
    private String[][] inputs;
    private static String[][] excelInputs;
    private static Row row;
    private static Cell cell;   

    public static void main(String[] args) {
        try {
                excelInputs=readExcelTable("Excel Report.xlsx");
            } catch (IOException e) {
                e.printStackTrace();
            }       

    }

    public static String[][] readExcelTable(String excelFile) throws IOException{

        FileInputStream inputStream = new FileInputStream(new File(excelFile));
        Workbook book = new XSSFWorkbook(inputStream);
        Sheet firstSheet = book.getSheetAt(0);
        int lastRowNum = firstSheet.getLastRowNum();

        String[][] excelReadout = new String[lastRowNum][4];
        for (int i = 3; i < lastRowNum; i++) {
            row = firstSheet.getRow(i);
            if (row == null) {
            } else {
                for (int j = 0; j < 4; j++) {
                    cell = row.getCell(j, Row.MissingCellPolicy.RETURN_BLANK_AS_NULL);
                    if (cell == null) {
                        // do nothing
                    } else {
                        excelReadout[i][j]=cell.toString();
                        //System.out.print(cell.toString());
                    }
                }
                System.out.println();
            }
        }
        return excelReadout;
    }

} 

最佳答案

将 jar 从 Eclipse 中的 Modulepath 移至 Classpaths 部分。解决了问题。

关于java - 使用apache poi库时如何修复NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57193140/

相关文章:

java - 为什么我在 Java 中收到 NoClassDefFoundError?

java - Jenkins构建失败:javac file not found

Java 字符串中的子字符串

java - Apache POI : xlsx not opening the file with MS Office excel

java - 当使用 SXSSFWorkbook 创建 Excel 并使用 XSSFWorkbook 修改 Excel 时,字符串单元格数据在 Excel 编辑器中不可见

java - 如何修复 java.lang.NoClassDefFoundError 崩溃

java - 为什么在尝试运行 Swing 桌面应用程序时会收到 HelpSetException - NoClassDefFoundError?

java - Maven 测试失败 - 属性 Autowiring 不起作用

java.lang.reflect.Field getType() 结果无法与使用 equals() 的类型进行比较

java - 无法动态设置 HSSFCell 对象的值