You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache POI生成Excel文件时遇ClassNotFound错误,求解决方法

解决Java生成Excel时的ClassNotFound错误及编译问题

你现在遇到了两个明确的问题:一个是编译阶段的语法错误,另一个是运行时的ClassNotFound异常,下面我给你分步拆解解决:

一、先修复编译错误

createSheet(devnami)里的devnami没有加引号,编译器会把它当成一个未定义的变量,直接报编译失败。只需要把它改成字符串字面量即可:

XSSFSheet spreadsheet = workbook.createSheet("devnami");

二、解决ClassNotFound错误

这个异常是因为你的项目里缺少Apache POI的相关依赖包——XSSF系列类都是POI库提供的,JVM找不到这些类就会抛出这个错误。下面给你几种实用的解决思路:

思路1:手动下载并添加依赖包

如果你不用构建工具,需要手动下载以下核心jar包(建议使用同一版本,比如最新稳定版5.2.5),然后放到项目的类路径(比如IDE里的lib文件夹):

  • poi-5.2.5.jar
  • poi-ooxml-5.2.5.jar
  • poi-ooxml-schemas-4.1.2.jar(注意版本要和POI主包兼容)
  • xmlbeans-5.1.1.jar
  • commons-codec-1.15.jar
  • commons-collections4-4.4.jar
  • commons-math3-3.6.1.jar

思路2:使用Maven管理依赖(推荐)

如果你的项目是Maven项目,直接在pom.xml中添加以下依赖,Maven会自动下载并管理所有相关依赖包:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.5</version>
    </dependency>
</dependencies>

思路3:使用Gradle管理依赖

如果是Gradle项目,在build.gradle(Groovy DSL)中添加:

dependencies {
    implementation 'org.apache.poi:poi:5.2.5'
    implementation 'org.apache.poi:poi-ooxml:5.2.5'
}

三、修正后的完整代码

这里给你整理了修复后的代码,还补充了关闭Workbook的操作(避免资源泄漏),以及更详细的错误输出:

import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;

public class WorkingwithFile {
    public static void main(String[] args) {
        try {
            XSSFWorkbook workbook = new XSSFWorkbook();
            // 修复:给sheet名称添加引号
            XSSFSheet spreadsheet = workbook.createSheet("devnami");
            FileOutputStream out = new FileOutputStream(new File("c:/excel.xlsx"));
            
            workbook.write(out);
            // 按顺序关闭资源,避免内存泄漏
            out.close();
            workbook.close();
            
            System.out.println("Excel文件已成功创建!");
        } catch (Exception e) {
            // 打印完整异常栈,方便排查深层问题
            e.printStackTrace();
        }
    }
}

额外注意点

  • 确保写入路径c:/excel.xlsx有足够的写入权限,否则会抛出IOException;
  • 如果使用IDE(IntelliJ/Eclipse),添加依赖后记得刷新项目,让IDE识别新的jar包;
  • 尽量使用最新稳定版的POI库,避免版本兼容问题。

内容的提问来源于stack exchange,提问作者JAMES ADAKOLE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:24:39