使用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.jarpoi-ooxml-5.2.5.jarpoi-ooxml-schemas-4.1.2.jarxmlbeans-5.1.1.jarcommons-codec-1.15.jarcommons-collections4-4.4.jarcommons-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(); } } }
三、运行注意事项
- 确保JDK 19环境配置正确,手动导Jar的话,用命令行编译运行时要指定类路径:
javac -cp ".:./lib/*" CreateWordDoc.java java -cp ".:./lib/*" CreateWordDoc
(把所有Jar包放在项目根目录的lib文件夹里)
2. 生成的生成的Word文档.docx会在项目根目录下,直接打开即可查看内容。
内容的提问来源于stack exchange,提问作者Jonathan -
相关产品推荐
相关产品推荐

