Apache POI Word

1、什么是Apache POI?

Apache POI是一个流行的API,使用Java程序创建,修改和显示MS-Office文件。 它是由Apache
Software Foundation开发和发布的一个开源库,用于使用Java程序设计或修改MS-Office文件。 它包含用于将用户输入数据或文件解码为MS-Office文档的类和方法。

2、Apache POI的组件

Apache POI包含用于MS-Office的所有OLE2复合文档的类和方法。 此API的组件列表如下:

POIFS:此组件是所有其他POI元素的基本因素。 它用于显式读取不同的文件。

HSSF:用于读取和写入.xls格式的MS-Excel文件。

XSSF(XML SpreadSheet格式):用于MS-Excel的.xlsx文件格式。

HPSF:用于提取MS-Office文件的属性集。

HWPF:用于读取和写入MS-Word的.doc扩展文件。

XWPF(XML字处理器格式):用于读取和写入MS-Word的扩展文件 .docx 

HSLF:用于阅读,创建和编辑PowerPoint演示文稿。

HDGF(Horrible DiaGram格式):它包含MS-Visio二进制文件的类和方法。

HPBF(Horrible PuBlisher格式):用于读取和写入MS-Publisher文件。

本文章将指导您完成使用Java处理MS-Word文件的过程。因此,仅限于HWPF和XWPF组件。

3、安装Apache POI库

从 http://poi.apache.org/download 下载最新版本的Apache
POI。并将其内容解压缩到一个文件夹,从中可以将所需的库链接到Java程序。导入jar如下:

4、Apache POI Word -
文件

以下简单程序用于创建空白MS-Word文档:

5、Apache POI Word -
段落

下面程序用于创建一个段落以及将其添加到文档中。段落是Word文件中页面的一部分。

首先创建一个文档,然后我们可以创建一个段落。使用Paragraph实例,您可以创建行,然后向文档中输入一些文本。例子如下:

在c盘根目录下创建word文档:

createparagraph.docx 文件如下所示

6、Apache POI Word -
表格

下面程序用于创建表格
并且设置表格的宽度,使用XWPFTable 类创建表数据。 将每个行添加到表格中,并将单元格添加到行

7、Apache POI Word -
图片

下面程序用与在文档中创建数据表,并向文档中导入图片。

8、Apache POI Word -
文本提取

对于.docx文件,我们使用类org.apache.poi.xwpf.extractor.XPFFWordExtractor从Word文件中提取和返回简单数据,从Word文件中提取标题,脚注,表数据等。

下面显示如何从Word文件提取简单文本:

总结:关于使用HWPF和XWPF组件来处理word就介绍到这里了,更多的资料可以参考完整的API文档:https://poi.apache.org/apidocs/index.html?org/apache/poi/openxml4j/opc/internal/package-summary.html

Apache POI Word基本使用的更多相关文章

  1. 解决 apache poi 转换 word(docx) 文件到 html 文件表格没边框的问题

    一.起因 这几天在做电子签章问题,要通过替换docx文件中的占位符生成包含业务数据的合同数据,再转换成html文件,转换成pdf文件.遇到的问题是:通过apache poi转换docx到html时,原 ...

  2. Java中用Apache POI生成excel和word文档

    概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...

  3. 使用java Apache poi 根据word模板生成word报表

    项目开发过程中,客户提出一堆导出报表的需求,需要导出word格式,页眉还需要加上客户公司的logo,试了几种方案,最后选择了用 Apache poi 加上自定义标签的方式实现. 目前功能还比较简单,一 ...

  4. Apache Poi 操作word,替换字符保留样式问题,runs段落混乱问题。

    关于这个问题也是刚好遇到,一通搜索也没有找到类似的或者是有效的方法.下面介绍一下. 首先apache poi的引入 <dependency> <groupId>org.apac ...

  5. java word转html 报错 org/apache/poi/xwpf/usermodel/IRunBody

    最终解决的办法是修改jar包版本,一定要对应上. <dependency> <groupId>org.apache.poi</groupId> <artifa ...

  6. apache poi导出excel报表

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"P ...

  7. Apache POI 实现对 Excel 文件读写

    1. Apache POI 简介 Apache POI是Apache软件基金会的开放源码函式库. 提供API给Java应用程序对Microsoft Office格式档案读和写的功能. 老外起名字总是很 ...

  8. 【POI word】使用POI实现对Word的读取以及生成

    项目结构如下: 那第一部分:先是读取Word文档 package com.it.WordTest; import java.io.FileInputStream; import java.io.Fil ...

  9. POI Word 模板 文字 图片 替换

    实验环境:POI3.7+Word2007 Word模板: 替换后效果: 代码: 1.入口文件 public class Test { public static void main(String[] ...

随机推荐

  1. (转)ORA-01940: cannot drop a user that is currently connected 问题解析

    删除数据库用户的时候经常会遇到这样的错误: ORA: cannot drop a user that is currently connected 原因是有程序在连接我们需要删除的用户,我们删除用户之 ...

  2. 【Codeforces Round #301 (Div. 2) B】 School Marks

    [链接] 我是链接,点我呀:) [题意] 已知k门成绩. 总共有n门成绩. 让你构造剩下的n-k门成绩,使得这n门成绩的中位数>=y,并且这n门成绩的和要小于等于x. n为奇数 [题解] 首先判 ...

  3. 洛谷—— P1017 进制转换

    https://www.luogu.org/problem/show?pid=1017#sub 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1) ...

  4. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  5. 35、在JZ2440上使用3G上网卡

    1. 简单使用:1.1 选型:中国联通:E网时空 EW65 (64元), ZTE中兴 MF637U (160多)中国电信:Benton/本腾 EQ10B (35元)中国移动:华为 ET128 (99元 ...

  6. pstack.sh 改进版

    pstack.sh 改进版本 #!/bin/bash if (( $# < 1 )) ; then echo "usage: `basename $0` pid" 1> ...

  7. Vue.js如何划分组件

    常见的一些页面,大家坐在一起敲代码就可以了,做完这个页面再做别的页面,但是作为一个功能复杂的系统,尤其是使用一些适合模块化开发的框架,这样会显得效率很低,那么我们就单纯的看在Vue里面如何划分组件的. ...

  8. [转] Python 爬虫的工具列表 附Github代码下载链接

    转自http://www.36dsj.com/archives/36417 这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests - ...

  9. Intent七在属性之一:ComponentName 分类: H1_ANDROID 2013-11-10 10:54 1184人阅读 评论(1) 收藏

    注:在<疯狂android讲义>中,此属性称为Component,官方文档中称为ComponentName. 1.The name of the component that should ...

  10. Android多线程研究(9)——线程锁Lock

    在前面我们在解决线程同步问题的时候使用了synchronized关键字,今天我们来看看Java 5.0以后提供的线程锁Lock. Lock接口的实现类提供了比使用synchronized关键字更加灵活 ...