目录是 Word 文档中的一种域,用于显示文档中的各级标题及其对应的页码。在文档内容发生变化后,只需要更新目录域,即可根据新的标题和对应页码生成新的目录。无论是在编辑文档时还是在阅读文档时,目录都能提供极大的便利。同时,目录还能使文档更加专业,是科技、学术等文档中的重要部分。本文将介绍如何使用 Spire.Doc for Java 通过 Java 程序在 Word 文档中插入目录。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从 这个链接 下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.11.9</version>
</dependency>
</dependencies>
在 Word 文档中创建默认格式的目录
在创建目录之前,需要先为每个标题设置标题等级,这样目录域才可以根据标题、标题等级和对应页码生成目录。标题的等级可以使用 Paragraph.getListFormat().setListLevelNumber(int) 方法进行设置。
Spire.Doc for Java 提供了 Paragraph.appendTOC() 方法用于在文档段落中插入目录。在 Word 文档中插入默认格式的目录的详细操作步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.loadFromFile() 方法载入 Word 文档。
- 使用 Document.addSection() 方法为文档添加一个节,并使用 Document.getSections().insert() 方法将其插入到文档的封面节之后。
- 使用 Section.addParagraph() 方法在节中添加一个段落。
- 使用 Paragraph.appendTOC() 方法在段落中创建目录。
- 使用 Document.updateTableOfContents() 方法更新目录,以显示文档中的标题及其页码。
- 使用 Document.saveToFile() 方法保存文档。
- Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
public class insertTableOfContents {
public static void main(String[] args) {
//创建Document类的对象
Document doc = new Document();
//载入Word文档
doc.loadFromFile("示例.docx");
//添加一个节并将其插入到文档的封面节之后
Section section = doc.addSection();
doc.getSections().insert(1, section);
//在该节中添加一个段落
Paragraph paragraph = section.addParagraph();
paragraph.appendText("目录\r\n");
paragraph.getStyle().getCharacterFormat().setFontSize(14f);
paragraph.getStyle().getCharacterFormat().setFontName("HarmonyOS Sans SC");
//在该节中创建一个展示2到3级标题的默认格式目录
paragraph.appendTOC(2, 3);
//更新目录
doc.updateTableOfContents();
//保存文档
doc.saveToFile("默认格式目录.docx");
doc.dispose();
}
}
在 Word 文档中创建自定义格式的目录
在 Spire.Doc for Java 中,TableOfContent 类用来表示 Word 文档的目录。在创建 TableOfContent 类的对象时,可以通过转换符自定义目录中要显示的内容。例如,转换符 "{\o \"1-3\" \\1-2}" 表示目录显示一级到三级标题,但不显示一级和二级标题的页码。
在 Word 文档中创建自定义格式的目录的详细操作步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.loadFromFile() 方法载入 Word 文档。
- 使用 Document.getSections().insert() 方法在封面节后插入一个节,并使用 Section.addParagraph() 方法在该节中添加一个段落。
- 通过创建一个 TableOfContent 类的对象,来创建一个显示一级到三级标题但不显示一级和二级标题页码的目录。
- 使用 Paragraph.getItems().add() 方法将目录插入到添加的段落中。
- 使用 Paragraph.appendFieldMark() 方法在段落中插入域分隔符和域结束符,以结束目录域。
- 使用 Document.setTOC() 方法将创建的目录设置为该文档的目录。
- 使用 Document.updateTableOfContents() 方法更新目录以显示当前文档的目录内容。
- 使用 Document.saveToFile() 方法保存文档。
- Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.FieldMarkType;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TableOfContent;
public class insertTableOfContentsWithCustomizedStyle {
public static void main(String[] args) {
//创建Document类的对象
Document doc = new Document();
//载入Word文档
doc.loadFromFile("示例.docx");
//在封面节之后插入一个节,并在该节中添加一个段落
Section section = doc.addSection();
doc.getSections().insert(1, section);
Paragraph paragraph = section.addParagraph();
paragraph.getStyle().getCharacterFormat().setFontSize(14f);
//创建一个TableOfContent类的对象
TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\n 1-2}");
//将创建的目录插入到该段落中
paragraph.getItems().add(toc);
//插入域分隔符和结束符以结束目录域
paragraph.appendFieldMark(FieldMarkType.Field_Separator);
paragraph.appendFieldMark(FieldMarkType.Field_End);
//将创建的目录设置为该文档的目录
doc.setTOC(toc);
//更新目录
doc.updateTableOfContents();
//保存文档
doc.saveToFile("自定义格式目录.docx");
doc.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。