使用时间:4小时

使用poi方法将word中的内容提取出来,并输出到控制台或者存储到数据库
poi.jar下载地址:https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.tar.gz
需要导入的包

根据标题和内容字体大小的不同,寻找所需要的段落和标题,并判断是标题还是内容。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class poi_word { public static void main(String[] args) throws IOException {
InputStream is = new FileInputStream(new File("path")); //读取文件
POIFSFileSystem fs = new POIFSFileSystem(is);
@SuppressWarnings("resource")
HWPFDocument document = new HWPFDocument(fs);
Range range = document.getRange(); //存储word内容到document中 for (int i = 0; i < range.numParagraphs()-2; i++) { //numparagraphs代表段落总数
int setparagraph=i; //记录当前段落
Paragraph para_1 = range.getParagraph(i);// 获取第i段
Paragraph para_2 = range.getParagraph(i+1);// 获取第i+1段
Paragraph para_3 = range.getParagraph(i+2);// 获取第i+2段 String paratext1 = para_1.text().trim().replaceAll("\r\n", ""); //当前段落的内容并去除换行
String paratext2 = para_2.text().trim().replaceAll("\r\n", ""); //当前段落的内容并去除换行
CharacterRun run1=para_1.getCharacterRun(0);
CharacterRun run2=para_2.getCharacterRun(0);
CharacterRun run3=para_3.getCharacterRun(0); //段落属性
if (paratext1.length() > 0&&paratext2.length() > 0) { if(run1.getFontSize()>run2.getFontSize()&&run2.getFontSize()>run3.getFontSize()) continue; // 当连续三个及以上的字体大小不同的段落存在时则跳过当前循环,直到两个段落存在(找到小标题和内容)
String content="";
if(run1.getFontSize()>=run2.getFontSize()) { //当两段内容字体大小为大于时 则为标题和内容 相等时则同为内容
content +=paratext2; //第i+1段为内容
run1=run2;
run2=run3; //顺序重新定位段落
setparagraph++;
}
System.out.println(paratext1+"\t"+content);
i=setparagraph;
}
}
}
}

参考来源:https://www.cnblogs.com/wys-373/p/10568322.html

随笔记录①—利用poi读取Word中的标题和内容的更多相关文章

  1. 利用POI抽取word中的图片并保存在文件中

    利用POI抽取word中的图片并保存在文件中 poi.apache.org/hwpf/quick-guide.html 1.抽取word doc中的图片 package parse; import j ...

  2. Java使用POI读取Word中的表格

    个人博客 地址:https://www.wenhaofan.com/a/20190627135921 代码 package live.autu.word; import java.io.FileInp ...

  3. 利用POI读取word文档实例

    package read.document; import java.io.FileInputStream; import java.io.FileNotFoundException; import ...

  4. Java利用poi生成word(包含插入图片,动态表格,行合并)

    转(小改): Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插 ...

  5. 利用poi操作word文档

    关键字:POI JAVA 批注 总页数 总字符数 一:认识POI Apache POI是一个开源的利用Java读写Excel.WORD等微软OLE2组件文档的项目.最新的3.5版本有很多改进,加入了对 ...

  6. POI 读取word (word 2003 和 word 2007) (转)

    最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 9 ...

  7. poi 读取word文档

    1.导入jar包 官网下载地址: https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.zip 最开始 ...

  8. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  9. POI 读取word (word 2003 和 word 2007)(转,好用)

    POI 读取word (word 2003 和 word 2007)(转,好用) 转做的操作: 将作者文中失效的链接的正确链接放在失效链接的下面. 最近在给客户做系统的时候,用户提出需求,要能够导入 ...

随机推荐

  1. Responsive web design 学习笔记

    Advanced Styling with Responsive Design 此笔记为Coursera同名课程笔记. Week1 什么是响应式设计? 响应式设计: It is designing y ...

  2. Vue+Python 电商实战

    安装webStorm  https://blog.csdn.net/qq_38845858/article/details/89850737 安装NodeJs  http://nodejs.cn/do ...

  3. VirtualBox-5.2.8-121009-Win,虚拟机指令ifconfig不显示ip解决方法

  4. GoLand远程Linux开发环境搭建

    Goland 远程调试本文介绍如何从本机的goland连接远端server上的go代码进行调试 goland下载安装 建议购买正版,科学使用自行搜索. 需要安装插件,确保可以访问官网,不然配置下pro ...

  5. docker 运行mysql最新版本用navicat连接报错:1251

    主要是:新版的mysql的加密方式发生了变化,解决方法如下: 1:进入docker容器: docker exec -it  mysql(启动mysql时候起的别名)  /bin/bash 2:登陆my ...

  6. kali安装redis

    下载 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解压 tar -zxvf redis-4.0.11.tar.gz 切换目录 ...

  7. mysql——单表查询——分组查询——示例

    一.基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ...

  8. CentOS7 nginx 最简单的安装以及设置开机启动

    1. 下载tar包. 2. 解压缩tar包 3. 安装必须的部分 yum包 yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd ...

  9. node项目自动化部署--基于Jenkins,Docker,Github(2)配置节点

    上一篇文章中准备工作已经完成的差不多了 这一篇主要讲解 Jenkins 上面的相关配置 为了让代码部署到所有的子节点上 所以我们首先需要在 Jenkins 中添加我们希望代码部署到的节点 配置节点 首 ...

  10. memset函数及注意事项

    memset函数的原型为:void * memset(void *ptr,int value,size_t num);用于为地址ptr开始的num个字节赋值value. memset函数的头文件为:C ...