Java 添加Word目录的2种方法
目录是一种能够快速、有效地帮助读者了解文档或书籍主要内容的方式。在Word中,插入目录首先需要设置相应段落的大纲级别,根据大纲级别来生成目录表。本文中生成目录分2种情况来进行:
1.文档没有设置大纲级别,生成目录前需要手动设置
2.文档已设置大纲级别,通过域代码生成目录
使用工具:
- Free Spire.Doc for Java (免费版)
- IntelliJ IDEA
工具获取途径1:通过官网下载jar文件包,解压并导入jar文件到IDEA程序。
工具获取途径2:通过Maven仓库导入到Maven项目中,参考导入方法。
Java示例代码(供参考)
【示例1】手动设置大纲级别并生成目录
import com.spire.doc.*;
import com.spire.doc.documents.BuiltinStyle;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;
import java.awt.*; public class AddToc {
public static void main(String[]args){
//加载测试文档
Document doc = new Document("test.docx"); //在文档最前面插入一个段落,写入文本并格式化
Paragraph parainserted = new Paragraph(doc);
TextRange tr= parainserted.appendText("目 录");
tr.getCharacterFormat().setBold(true);
tr.getCharacterFormat().setTextColor(Color.gray);
doc.getSections().get().getParagraphs().insert(,parainserted);
parainserted.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); //设置文档中指定段落的大纲级别
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_1);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_2);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_2);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_2);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_2);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_3);
doc.getSections().get().getParagraphs().get().applyStyle(BuiltinStyle.Heading_3); //添加目录
doc.getSections().get().getParagraphs().get().appendTOC(,); //更新目录表
doc.updateTableOfContents(); //保存文档
doc.saveToFile("AddToc.docx",FileFormat.Docx_2010);
}
}
目录生成效果:

【示例2】已设置大纲级别,通过域代码直接生成目录
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TableOfContent;
import com.spire.doc.fields.TextRange; import java.awt.*; public class AddTOC2 {
public static void main (String[] args){
//加载已设置大纲级别的测试文档
Document doc = new Document("sample.docx"); //在文档最前面插入一个段落,写入文本并格式化
Paragraph parainserted = new Paragraph(doc);
TextRange tr= parainserted.appendText("目 录");
tr.getCharacterFormat().setBold(true);
tr.getCharacterFormat().setTextColor(Color.gray);
doc.getSections().get().getParagraphs().insert(,parainserted);
parainserted.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); //通过域代码添加目录表
TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\h \\z \\u}");
doc.getSections().get().getParagraphs().get().appendTOC(,);
doc.updateTableOfContents(); //保存文档
doc.saveToFile("AddToc2.docx", FileFormat.Docx_2010);
}
}
目录生成效果:

PS:关于通过域代码生成目录,可参考这篇文章,获取更多目录设置方法
转载请注明出处!
(本文完)
Java 添加Word目录的2种方法的更多相关文章
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- java字符串大小写转换的两种方法
转载自:飞扬青春sina blogjava字符串大小写转换的两种方法 import java.io..* public class convertToPrintString { pu ...
- C#中得到程序当前工作目录和执行目录的五种方法
string str="";str += "\r\n" + System.Diagnostics.Process.GetCurrentProcess().Mai ...
- Java中创建数组的几种方法
Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...
- Java List转换为字符串的几种方法
Java List转换为字符串的几种方法 import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import ...
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- Java遍历List集合的三种方法
Java遍历List集合的三种方法 List<String> list = new ArrayList<String>(); list.add("aaa") ...
- (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- Java 读取clob字段的几种方法
Java 读取clob字段的几种方法 一.第一种 Clob clob = rs.getClob("remark");//Java.sql.Clob String detailinf ...
随机推荐
- Python连载58-http协议简介
一.http协议实战 1.URL(Uniform Resource Located) (1)使用FFTP的URL,例如:ftp://rtfm.mit.edu (2)使用HTTP的URL,例如:http ...
- Power BI 的数据源及数据刷新
Power BI 目前可以连接超过100种数据源,包含常见的各种数据库,文件,数据仓库,云等等. 不同的数据源支持不同的连接方式,通常来讲,Power BI 支持两种数据连接方式: 导入(import ...
- vue中点击屏幕其他区域关闭自定义div弹出框
直接上代码: mounted: function () { let that = this; $(document).on('click', function (e) { let dom = $('. ...
- injected stylesheet 谷歌扩展插件,造成样式异常
今天在开发的时候,遇到一个问题,就是我们我在写发送广告的功能,然后我用了一个textare文本框,这个时候,发现了一个问题.这个文本框凭空消失了.不见了,我以为是自己的那个样式不小心把这个隐藏掉了后来 ...
- Android 布局阴影实现
最近项目要求,ui有很多有关于阴影的设计要求,网上找了些实现方式,但都不是很理想.现在闲下来了,就寻思着自己写个阴影布局耍耍,以备后用.先说道说道我找到的几种阴影实现方式: 系统阴影 Andorid ...
- Java连载61-异常的机制与分类
一.is a.is like a.has a 1.is a(就是继承) public class Animal{ public void method1{ } } public class Dog e ...
- ES、kibana安装及交互操作
一.ES的安装与启动 1.ES安装(Windows环境) 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 版本 ...
- Socket实现简易聊天室,Client,Server
package seday08; import java.io.BufferedWriter;import java.io.OutputStream;import java.io.OutputStre ...
- STM32-24位AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI
1.AD7799介绍 AD7799结构图如下所示: 其中REFIN参考电压建议为2.5V, REFIN电压低于0.1V时,则差分输入ad值就无法检测了,如下图所示: 注意: 如果REG_CONFIG的 ...
- jeecg代码生成器配置及常见问题
jeecg_database.properties 以mysql为例: diver_name=com.mysql.jdbc.Driver url=jdbc:mysql://192.168.*.*:33 ...