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

如何使用Apache POI为Docx文档设置标题并使其显示在目录中?

问题描述

我正在创建Docx文档,想在表格上方添加标题。目前用以下代码生成文本:

XWPFParagraph newParagraph = document.insertNewParagraph(cursor);
XWPFRun run = newParagraph.createRun();
run.setText(headingCounter + ": Heading");

但生成的是普通文本而非标题,导致该文本无法显示在目录中,该怎么解决?

解决方法

要让文本成为能被目录识别的标题,核心是给段落设置Word内置的标题样式,具体修改如下:

修改后的代码

XWPFParagraph newParagraph = document.insertNewParagraph(cursor);
// 设置标题样式,Heading1对应Word的标题1,Heading2对应标题2,以此类推
newParagraph.setStyle("Heading1");
XWPFRun run = newParagraph.createRun();
run.setText(headingCounter + ": Heading");

说明

Word的目录是基于段落样式识别的,普通段落不会被纳入目录。通过setStyle方法指定内置标题样式(Heading1到Heading9对应Word里的标题1至标题9),就能让这段文本成为正式标题,后续生成目录时会自动包含进去。

如果需要自定义样式,需先在文档中创建自定义样式再通过样式名称指定,但多数场景下使用内置标题样式即可满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:55:18