package read.document;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List; import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Range; import pers.mysql.DBUtil;
import pers.mysql.MysqlDao;
import pers.mysql.MysqlDaoImp; public class WordReading { public static void main(String[] args) { String filePath = "*****.doc"; readOnWord(filePath); } public static void readOnWord(String filePath) { if (filePath.endsWith(".doc")) { // 输入流-基类
InputStream is = null;
try {
is = new FileInputStream(filePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("文件打开失败。");
} // 加载doc文档
try { HWPFDocument doc = new HWPFDocument(is); Range text = doc.getRange();// 整个文档 /*
* 分解word:文本 ->小节 ->段落 ->characterRun(理解为小单元)
* section -小节; paragraph - 段落
*/ //1分出内容节点
Range hotWord = text.getSection();// 0-封面,1-目录,2-文本;第3小节 //2段落处理
/*
* 维护两个变量
*
* 热词和解释区别 :大小-word:26,explaining:18
*
*/
String word = "";
String explaining = "";
int wordOK = ;
int explainOK = ;// 判断当前word&explain是否可以填入数据库 int count = ;// 读取几条数据到数据库
int begin = ;// 段落读取位置 for (int i = ; i < count;) {
Range para = hotWord.getParagraph(begin);
CharacterRun field = para.getCharacterRun();
int fontSize = field.getFontSize();
if (fontSize == ) {
word = para.text();
wordOK = ;
begin++;
} else {
while (fontSize < ) {
explaining += para.text();
begin++;
para = hotWord.getParagraph(begin);
field = para.getCharacterRun();
fontSize = field.getFontSize();
}
explainOK = ;
}
// 判断word&explain是否可以填入数据库
if (wordOK == && explainOK == ) {
MysqlDaoImp.addData(word, explaining);
i++;
//填入数据库后,一切归"0"
wordOK = ;
explainOK = ;
word="";
explaining="";
}
}
// 输出测试
// System.out.println("读取:" + "head:"); } catch (IOException e) {
e.printStackTrace();
System.out.println("IO错误。");
} } else {
System.out.println("文件格式 error:not .doc");
} }

利用POI读取word文档实例的更多相关文章

  1. 利用poi操作word文档

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

  2. poi 读取word文档

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

  3. java 使用poi读取word文档存入数据库

    使用的poi jar包需要自己下载 读取的word文档中含有多个图片,所以分为两个部分,一个部分读取各个表格中内容,一个是将所有图片截取出来: /** * 遍历段落内容 * docxReadPath ...

  4. POI生成word文档完整案例及讲解

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

  5. Python读取word文档内容

    1,利用python读取纯文字的word文档,读取段落和段落里的文字. 先读取段落,代码如下: 1 ''' 2 #利用python读取word文档,先读取段落 3 ''' 4 #导入所需库 5 fro ...

  6. 利用POI工具读取word文档并将数据存储到sqlserver数据库中

    今天实现了利用POI工具读取word文档,并将数据存储到sql数据库中,代码如下: package word; import java.io.File; import java.io.FileInpu ...

  7. 用java语言通过POI实现word文档的按标题提取

    最近有一个项目需要将一个word文档中的数据提取到数据库中.就去网上查了好多资料,最靠谱的就是用poi实现word文档的提取. 喝水不忘挖井人,我查了好多资料就这个最靠谱,我的这篇博客主要是借鉴htt ...

  8. C# 设置、删除、读取Word文档背景——基于Spire.Cloud.Word

    Spire.Cloud.Word.Sdk提供了接口SetBackgroudColor().SetBackgroudImage().DeleteBackground().GetBackgroudColo ...

  9. java中读取word文档里的内容

    package com.cn.peitest.excel.word; import java.io.FileInputStream; import java.io.FileOutputStream; ...

随机推荐

  1. C# 加密和解密文件

    相关示例代码如下: using System; using System.IO; using System.Security; using System.Security.Cryptography; ...

  2. Java基础--反射Reflection

    Reflection 反射能在运行时获取一个类的全部信息,并且可以调用类方法,修改类属性,创建类实例. 而在编译期间不用关心对象是谁 反射可用在动态代理,注解解释,和反射工厂等地方. -------- ...

  3. mybatis 学习三 关键文件解析

    1:  mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  4. Resque基本

    原文:http://www.cnblogs.com/rywx/archive/2012/05/26/2519615.html Resque resque是基于redis的后台任务组件,能把任何类或模块 ...

  5. python学习笔记(一):python简介和入门

    最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...

  6. Python类(四)-多态

    多态即一个接口,多种实现 按照平常直接调用 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(obje ...

  7. HDLM工具介绍

    HDLM提供了以下一些工具,以方便HDLM多路径管理. 1. dlmgetras hdlm信息收集工具,用来收集hdlm相关的各种日志.trace.配置等文件,以方便进行hdlm故障分析. 命令格式 ...

  8. JVM知识点总览

    jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图, ...

  9. JAVA基础知识总结9(特殊类)

    1.Object: 所有类的直接或者间接父类,Java认为所有的对象都具备一些基本的共性内容,这些内容可以不断的向上抽取,最终就抽取到了一个最顶层的类中的,该类中定义的就是所有对象都具备的功能. 具体 ...

  10. 使用绘图API自定义组件

    -----------------siwuxie095                                 工程名:CustomizeSwing 包名:com.siwuxie095.swi ...