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

使用XWPFDocument创建Word文档时遇Java编译错误求助

解决XWPFDocument类无法解析+代码语法问题的完整方案

一、先搞定依赖(类无法解析的核心原因)

你遇到的XWPFDocument、XWPFParagraph、XWPFRun无法解析,本质是项目没引入Apache POI的相关依赖——这些类属于Apache POI的OOXML模块,专门用来处理Office文档。

用Maven管理项目的情况

直接在pom.xml里添加这段依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.5</version> <!-- 用最新稳定版即可 -->
    </dependency>
</dependencies>

手动导入Jar包的情况

下载以下Jar包,添加到项目的类路径中:

  • poi-5.2.5.jar
  • poi-ooxml-5.2.5.jar
  • poi-ooxml-schemas-4.1.2.jar
  • xmlbeans-5.1.1.jar
  • commons-codec-1.15.jar
  • commons-collections4-4.4.jar
  • commons-io-2.11.0.jar

二、修正类嵌套的语法问题

新手常犯把主类嵌套在其他类里的错误,下面是能直接运行的完整代码,可生成包含指定段落的Word文档:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

// 主类直接放在最外层,不要嵌套其他类
public class CreateWordDoc {
    public static void main(String[] args) {
        // 创建空Word文档对象
        try (XWPFDocument document = new XWPFDocument()) {
            // 添加第一段内容
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("这是第一段测试内容");
            run1.setFontSize(12);
            run1.setFontFamily("微软雅黑");

            // 添加第二段内容(自动换行)
            XWPFParagraph paragraph2 = document.createParagraph();
            XWPFRun run2 = paragraph2.createRun();
            run2.setText("这是你需要的指定段落内容,可直接替换成自己的文本");
            run2.setFontSize(14);
            run2.setBold(true); // 设置加粗效果

            // 将文档写入本地文件
            try (FileOutputStream out = new FileOutputStream("生成的Word文档.docx")) {
                document.write(out);
                System.out.println("Word文档生成成功!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

三、运行注意事项

  1. 确保JDK 19环境配置正确,手动导Jar的话,用命令行编译运行时要指定类路径:
javac -cp ".:./lib/*" CreateWordDoc.java
java -cp ".:./lib/*" CreateWordDoc

(把所有Jar包放在项目根目录的lib文件夹里)
2. 生成的生成的Word文档.docx会在项目根目录下,直接打开即可查看内容。

内容的提问来源于stack exchange,提问作者Jonathan -

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:00:56