Java 获取Word中的标题大纲(目录)
概述
Word中的标题可通过“样式”中的选项来快速设置(如图1),

图1
在添加目录时,可将“有效样式”设置为“目录级别”显示(如图2),一定程度上来说,标题大纲也可以作为目录来参考。

图2
本文,将通过后端Java程序代码介绍如何来获取Word中的标题内容。
注:如果在Word中进行了如图2中的设置,此方法也可以作为获取目录的方法;若没有对应设置,则想要通过此方法来获取的目录内容可能不完整。
本次测试的Word文档如下图所示,【标题样式】和【目录级别】经过相应设置,在获取标题大纲时等同于获取目录:

图3
代码测试环境
- Word测试文档:.docx 2013版
- 编译环境:IntelliJ IDEA 2018
- Jdk版本:1.8.0
- Word jar包:free spire.doc.jar 3.9.0
Java 程序代码
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph; import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException; public class GetTitle {
public static void main(String[] args)throws IOException {
//加载Word测试文档
Document doc = new Document();
doc.loadFromFile("sample.docx"); //保存标题内容到.txt文档
File file = new File("GetTitle.txt");
if (file.exists())
{
file.delete();
}
file.createNewFile();
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw); //遍历section
for (int i = 0; i < doc.getSections().getCount(); i++)
{
Section section = doc.getSections().get(i);
//遍历Paragraph
for (int j = 0; j < section.getParagraphs().getCount(); j++)
{
Paragraph paragraph = section.getParagraphs().get(j); //获取标题
if ( paragraph.getStyleName().matches("1"))//段落为“标题1”的内容
{
//获取段落标题内容
String text = paragraph.getText(); //写入文本到txt文档
bw.write("标题1: "+ text + "\r");
}
//获取标题
if ( paragraph.getStyleName().matches("2"))//段落为“标题2”的内容
{
//获取段落标题内容
String text = paragraph.getText(); //写入文本到txt文档
bw.write("标题2: " + text + "\r");
}
//获取标题
if ( paragraph.getStyleName().matches("3"))//段落为“标题3”的内容
{
//获取段落标题内容
String text = paragraph.getText(); //写入文本到txt文档
bw.write("标题3: " + text+"\r");
}
//获取标题
if ( paragraph.getStyleName().matches("4"))//段落为“标题4”的内容
{
//获取段落标题内容
String text = paragraph.getText(); //写入文本到txt文档
bw.write("标题4: " + text+"\r");
} bw.write("\n");
} }
bw.flush();
bw.close();
fw.close();
}
}
标题(目录)获取结果:

本文完。
原创内容,如需转载,请注明出处!
Java 获取Word中的标题大纲(目录)的更多相关文章
- Java 获取Word中指定图片的坐标位置
本文介绍通过Java程序获取Word文档中指定图片的坐标位置. 程序运行环境: Word测试文档:.docx 2013 Free Spire.doc.jar 3.9.0 IntelliJ IDEA J ...
- Java 获取Word中的所有插入和删除修订
在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入.删除.替换和格式更改.对插入或删除的内容,可通过本文中介绍的方法来获取. 引入Jar 方法1 手动引入:将 Free Sp ...
- [转载]JAVA获取word表格中数据的方案
上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...
- [原创]JAVA获取word表格中数据的方案
上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...
- Java读取word中表格
因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...
- java获取request中的参数、java解析URL问号后的参数
java获取request中的参数.java解析URL问号后的参数.有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需 ...
- Java获取路径中的文件名(正则表达式)
Java获取路径中的文件名(正则表达式) 目标 在这个路径中我想得到model2 /E:/2017-02-21--SoftWare/github/test/Java/poiDemo_word2exce ...
- 随笔记录①—利用poi读取Word中的标题和内容
使用时间:4小时 使用poi方法将word中的内容提取出来,并输出到控制台或者存储到数据库poi.jar下载地址:https://www.apache.org/dyn/closer.lua/poi/r ...
- Java 实现word 中写入文字图片的解决方案
JAVA生成WORD文件的方法目前有以下两种方式: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案; 一种是poi但是他的excel处理很程序 ...
随机推荐
- 加州金融专访NGK,就NGK DeFi+展开讨论
近日,加利福尼亚金融日报联合数家知名媒体就DeFi+行业专访了NGK团队代表特德惠斯基. 首先,加利福尼亚金融日报专栏记者迈尔斯表示,目前区块链领域,去中心化金融(DeFi+)的概念是目前市场上面最火 ...
- Chateau Renice酒庄 :忠于风味,尊重自然
Chateau Renice酒庄(公司编号:20151318780)凭借优良的葡萄栽培传统.卓越的酿酒技术以及独特风味的葡萄酒,近年来葡萄酒畅销至全球. Chateau Renice酒庄将葡萄酒出口至 ...
- NDB程序进近复飞保护区的绘制
终于有点空闲,找张图来演练一下<风螺旋标准模板>软件的用法. 某机场NDB进近程序剖面图如下图所示: 该机场采用了近台和远台的双台布局,近台和远台均为NDB与指点标的合装台,没有中间进近定 ...
- MySQL学习04(DQL查询)
DQL查询 DQL语言 DQL( Data Query Language 数据查询语言 ) 查询数据库数据 , 如SELECT语句 简单的单表查询或多表的复杂查询和嵌套查询 是数据库语言中最核心,最重 ...
- C++算法代码——阿克曼函数
题目来自: 题目描述 阿克曼( Ackmann) 函数 A(x, y) 中, x, y 定义域是非负整数, 函数值定义为: 输入 输入两个数,表示m和n. 两个数均不超过10. 输出 输出一个数,表示 ...
- 微信小程序:快速生成less文件类嵌套的结构
全部选中标签结构,按住ctrl+shift+p,选中插件Generate CSS tree(提前安装CSS Tree),先删除undefined,将img替换成image,删除标签名view. 完整的 ...
- Python爬虫系统化学习(3)
一般来说当我们爬取网页的整个源代码后,是需要对网页进行解析的. 正常的解析方法有三种 ①:正则匹配解析 ②:BeatuifulSoup解析 ③:lxml解析 正则匹配解析: 在之前的学习中,我们学习过 ...
- 《C++ Primer》笔记 第13章 拷贝控制
拷贝和移动构造函数定义了当用同类型的另一个对象初始化本对象时做什么.拷贝和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时做什么.析构函数定义了当此类型对象销毁时做什么.我们称这些操作为拷贝控制 ...
- apicloud编译所需的ios证书的获取方法
在我们通过apicloud或hbuilderX这些工具打包ios应用的时候,需要一个ios证书. 那么我们如何生成这个ios证书呢?网上介绍的方法都是需要使用mac电脑,然后用mac电脑的钥匙串访问的 ...
- 大家最常用的编程论坛是哪个呢,欢迎评论!!掘金16 juejin 简书41 jianshu 博客85 csdn137 csdn
软件编程交流论坛 掘金 16 juejin 简书 41 jianshu 博客 85 cnblogs csdn 137 csdn stackoverflow 0 思否 github 大家最常用的 ...