一、简介
  对于poi来说,poi可以完成对word、excel、ppt的处理。word目前有两种文件格式,一种是doc后缀、另一种是docx后缀的。2007之前的版本都是doc后缀的,这种格式poi使用HWPF进行处理。HWPF也能有限多地对旧的word6和word95格式的文件处理提供支持。2007(包括)之后都是docx后缀的,poi使用XWPF进行处理。HWPF 和 XWPF的特性有些相似,但是目前两者没有共用接口。
  HWPF和XWPF可以被描述为“适度功能”。对于一些例子来说,管理文本的提取,提供强有力的支持。对于其他莱斯,支持是有限或不完整的,需要深入研究低级别的代码。错误检测已经被移除,所有可能会创建格式错误的文件。
  HWPF 包含在poi-scratchpad-XXX.jar包中,而XWPF 包含在 poi-ooxml-XXX.jar包中。我们可以根据我们的需要来将这些包添加都classpath里面。HWPF与XWPF网址为:http://poi.apache.org/document/index.html 。

二、实例

  1、依赖如下:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.12</version>
</dependency>

  2、示例代码如下:

 package com.test.word;

 import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.List; import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.TextAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.junit.Test;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; /**
* 创建word文档
*/
public class WordCreate {
/**
* 2007word文档创建
*/
@Test
public void createWord2007() {
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p1 = doc.createParagraph(); XWPFTable table = doc.createTable(11, 4);
// CTTblBorders borders=table.getCTTbl().getTblPr().addNewTblBorders();
CTTblPr tblPr = table.getCTTbl().getTblPr();
tblPr.getTblW().setType(STTblWidth.DXA);
tblPr.getTblW().setW(new BigInteger("7000")); // 设置上下左右四个方向的距离,可以将表格撑大
table.setCellMargins(20, 20, 20, 20); // 表格
List<XWPFTableCell> tableCells = table.getRow(0).getTableCells(); XWPFTableCell cell = tableCells.get(0);
XWPFParagraph newPara = new XWPFParagraph(cell.getCTTc().addNewP(), cell);
XWPFRun run = newPara.createRun();
/** 内容居中显示 **/
newPara.setAlignment(ParagraphAlignment.CENTER);
// run.getCTR().addNewRPr().addNewColor().setVal("FF0000");/**FF0000红色*/
// run.setUnderline(UnderlinePatterns.THICK);
run.setText("第一 数据"); tableCells.get(1).setText("第一 数据");
tableCells.get(2).setText("第一 据");
tableCells.get(3).setText("第 据"); tableCells = table.getRow(1).getTableCells();
tableCells.get(0).setText("第数据");
tableCells.get(1).setText("第一 数据");
tableCells.get(2).setText("第一 据");
tableCells.get(3).setText("第 据"); // 设置字体对齐方式
p1.setAlignment(ParagraphAlignment.CENTER);
p1.setVerticalAlignment(TextAlignment.TOP); // 第一页要使用p1所定义的属性
XWPFRun r1 = p1.createRun(); // 设置字体是否加粗
r1.setBold(true);
r1.setFontSize(20); // 设置使用何种字体
r1.setFontFamily("Courier"); // 设置上下两行之间的间距
r1.setTextPosition(20);
r1.setText("标题"); FileOutputStream out;
try {
out = new FileOutputStream("c:/test/word2007.docx");
// 以下代码可进行文件下载
// response.reset();
// response.setContentType("application/x-msdownloadoctet-stream;charset=utf-8");
// response.setHeader("Content-Disposition",
// "attachment;filename=\"" + URLEncoder.encode(fileName, "UTF-8"));
// OutputStream out = response.getOutputStream();
// this.doc.write(out);
// out.flush(); doc.write(out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("success");
} }

  3、生成word如下所示

poi生成word文件的更多相关文章

  1. POI生成WORD文档

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

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

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

  3. Java使用iText生成word文件的完美解决方案(亲测可行)

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  4. POI 生成 word 文档 简单版(包括文字、表格、图片、字体样式设置等)

      POI 生成word 文档 一般有两种方法: ① word模板 生成word 文档 : ② 写代码直接生成 word 文档: 我这里演示的是第二种方法,即写代码生成 word文档,不多说废话,直接 ...

  5. 利用html模板生成Word文件(服务器端不需要安装Word)

    利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端 ...

  6. JSP生成word文件

    1.jsp生成word文件,直接改动jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"% ...

  7. POI生成EXCEL文件

    POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...

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

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

  9. 根据指定Word模板生成Word文件

    最近业务需要批量打印准考证信息 1.根据Table数据进行循环替换,每次替换的时候只替换Word中第一个Table的数据, 2.每次替换之后将Word中第一个Table数据进行复制,将复制Table和 ...

随机推荐

  1. PHP高效率写法

    1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率 ...

  2. 泛函编程(36)-泛函Stream IO:IO数据源-IO Source & Sink

    上期我们讨论了IO处理过程:Process[I,O].我们说Process就像电视信号盒子一样有输入端和输出端两头.Process之间可以用一个Process的输出端与另一个Process的输入端连接 ...

  3. linux 如何改变文件属性与权限

    我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢? 我们这里介绍几个常用于群组.拥有者.各种身份的权限的指令.如下所示: chgr ...

  4. Java数组排序和查找

    Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索.这些工具都属于两个新类的"静态"方法.这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜 ...

  5. mysql 5.6 read-committed隔离级别下并发插入唯一索引导致死锁一例

    今天,某个环境又发生了死锁,如下: *** (1) TRANSACTION:TRANSACTION 735307073, ACTIVE 0 sec insertingmysql tables in u ...

  6. mysql出错:Access denied for user 'root'@'localhost' (using password: YES)

    网站链接mysql数据库的时候,连接不上,并报出错误:Access denied for user 'root'@'localhost' (using password:YES) 这是个相当恼火的问题 ...

  7. 简单的Writer和Reader

    Writer用于写出去到文件中,Reader用于将外面的文件读进来控制台 Writer和Reader有许多子类,但是子类大多都是直接运用父类Writer和Reader的方法,而且Writer和Read ...

  8. React入门--------顶层API

    React.createClass 参数:config(object) 创建一个ReactClass(组件类),参数是一个对象且必须带有render属性方法,该方法必须返回一个封闭的容器(容器内可以由 ...

  9. 【服务器】CentOS下部署运行NodeJs Web App

    NodeJs Web App测试完成后,要怎么部署呢?介绍两个不错的方案 已知以下情景: 我要为 「kenniu」这个项目做配置 它的入口文件在 「/path/to/entry.js」 运行的User ...

  10. jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)

    最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 1. ...