一、简介
  对于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 。此网站为官网,我一般下载jar包所用网站为http://mvnrepository.com/

二、实例

  1、依赖如下:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>

  2、示例代码如下:

  1 package com.test.word;
2
3 import java.io.FileOutputStream;
4 import java.io.IOException;
5 import java.math.BigInteger;
6 import java.util.List;
7
8 import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
9 import org.apache.poi.xwpf.usermodel.TextAlignment;
10 import org.apache.poi.xwpf.usermodel.XWPFDocument;
11 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
12 import org.apache.poi.xwpf.usermodel.XWPFRun;
13 import org.apache.poi.xwpf.usermodel.XWPFTable;
14 import org.apache.poi.xwpf.usermodel.XWPFTableCell;
15 import org.junit.Test;
16 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;
17 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
18
19 /**
20 * 创建word文档
21 */
22 public class WordCreate {
23 /**
24 * 2007word文档创建
25 */
26 @Test
27 public void createWord2007() {
28 XWPFDocument doc = new XWPFDocument();
29 XWPFParagraph p1 = doc.createParagraph();
30
31 XWPFTable table = doc.createTable(11, 4);
32 // CTTblBorders borders=table.getCTTbl().getTblPr().addNewTblBorders();
33 CTTblPr tblPr = table.getCTTbl().getTblPr();
34 tblPr.getTblW().setType(STTblWidth.DXA);
35 tblPr.getTblW().setW(new BigInteger("7000"));
36
37 // 设置上下左右四个方向的距离,可以将表格撑大
38 table.setCellMargins(20, 20, 20, 20);
39
40 // 表格
41 List<XWPFTableCell> tableCells = table.getRow(0).getTableCells();
42
43 XWPFTableCell cell = tableCells.get(0);
44 XWPFParagraph newPara = new XWPFParagraph(cell.getCTTc().addNewP(), cell);
45 XWPFRun run = newPara.createRun();
46 /** 内容居中显示 **/
47 newPara.setAlignment(ParagraphAlignment.CENTER);
48 // run.getCTR().addNewRPr().addNewColor().setVal("FF0000");/**FF0000红色*/
49 // run.setUnderline(UnderlinePatterns.THICK);
50 run.setText("第一 数据");
51
52 tableCells.get(1).setText("第一 数据");
53 tableCells.get(2).setText("第一 据")
54 tableCells.get(3).setText("第 据");
55
56 tableCells = table.getRow(1).getTableCells();
57 tableCells.get(0).setText("第数据");
58 tableCells.get(1).setText("第一 数据");
59 tableCells.get(2).setText("第一 据");
60 tableCells.get(3).setText("第 据");
61
62 // 设置字体对齐方式
63 p1.setAlignment(ParagraphAlignment.CENTER);
64 p1.setVerticalAlignment(TextAlignment.TOP);
65
66 // 第一页要使用p1所定义的属性
67 XWPFRun r1 = p1.createRun();
68
69 // 设置字体是否加粗
70 r1.setBold(true);
71 r1.setFontSize(20);
72
73 // 设置使用何种字体
74 r1.setFontFamily("Courier");
75
76 // 设置上下两行之间的间距
77 r1.setTextPosition(20);
78 r1.setText("标题");
79
80 FileOutputStream out;
81 try {
82 out = new FileOutputStream("c:/test/word2007.docx");
83 // 以下代码可进行文件下载
84 // response.reset();
85 // response.setContentType("application/x-msdownloadoctet-stream;charset=utf-8");
86 // response.setHeader("Content-Disposition",
87 // "attachment;filename=\"" + URLEncoder.encode(fileName, "UTF-8"));
88 // OutputStream out = response.getOutputStream();
89 // this.doc.write(out);
90 // out.flush();
91
92 doc.write(out);
93 out.close();
94 } catch (IOException e) {
95 e.printStackTrace();
96 }
97 System.out.println("success");
98 }
99
100 }

  3、生成word如下所示

 

poi生成word2007及以上文件的更多相关文章

  1. POI生成Web版Word文件

    POI生成Web版Word文件 1       通过URL的输入流实现 2       直接把Html文本写入到Word文件 所谓的使用POI生成Web版Word文件是指利用POI将Html代码插入到 ...

  2. 【Java】使用Apache POI生成和解析Excel文件

    概述 Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作,分别有jxl和poi,2种方式. HSSF is the POI Project's pure ...

  3. POI生成EXCEL文件

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

  4. 使用poi读取word2007(.docx)中的复杂表格

    使用poi读取word2007(.docx)中的复杂表格 最近工作需要做一个读取word(.docx)中的表格,并以html形式输出.经过上网查询,使用了poi. 对于2007及之后的word文档,需 ...

  5. POI生成WORD文档

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

  6. 黄聪:利用OpenXml生成Word2007文档(转)

    原文:http://blog.csdn.net/francislaw/article/details/7568317 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一Op ...

  7. 利用OpenXml生成Word2007文档

    一.OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术,至少可以使用微软提供的Office相关组件来编程,不过对于Office2007(确切的说是Word.Excel和Pow ...

  8. 使用POI生成Excel报表

    先把报表模板截图贴上来 下面是POI编写的报表生成类ExcelReport.java package com.jadyer.report; import java.io.FileNotFoundExc ...

  9. 使用Java类库POI生成简易的Excel报表

    使用Java类库POI生成简易的Excel报表 1.需求 1.数据库生成报表需要转义其中字段的信息.比如 1,有效 2.无效等 2.日期格式的自数据需要转义其格式. 3.标题的格式和数据的格式需要分别 ...

随机推荐

  1. 洛谷—— P1457 城堡 The Castle

    https://www.luogu.org/problem/show?pid=1457 题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特 ...

  2. HDU 4357

    这道题写起来没难度,但这种题确实很难,这种字符串的题难在证明.以后也要注意. 奇偶性不同的字符串肯定不能转换,因为每一次交换都是字符串的和增加2. 当字符串长度为2时,可以模拟交换,最多26次. 否则 ...

  3. Share Your Knowledge and Experiences

     Share Your Knowledge and Experiences Paul W. Homer FRoM All oF ouR ExpERiEnCES, including both suc ...

  4. HTML5开发移动web应用——Sencha Touch篇(8)

    DataView是Sencha Touch中最重要的组件,用于数据的可视化.数据可视化的重要性不言而喻,能够讲不论什么数据以形象的方式展示给用户. 眼下,怎样更好地可视化是很多公司或框架都在追求的. ...

  5. Android recovery UI实现分析

    Android recovery模式为何物? 关于这个问题, baidu上已经有无数的答案.不理解的朋友先补习一下. 从纯技术角度来讲, recovery和android本质上是两个独立的rootfs ...

  6. ASP.NET六大巨头——内置对象(1)

    ASP.NET提供了六个内置对象:Request.Response.Application.Session.Server和Cookie.这些对象收集当前应用程序请求.用户信息.响应浏览器信息,来完毕页 ...

  7. Spring Boot + Bootstrap + jQuery + Freemarker

    Spring Boot + Bootstrap + jQuery + Freemarker 原文地址:http://qilu.me/post/tech/2018-03-18 最近在写一些Web的东西, ...

  8. Android开发:ImageView阴影和图层效果

    import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import  ...

  9. 手机、电脑、安卓、iOS、微信浏览器判断

    微信浏览器判断: // true为微信浏览器function is_weixin() { var ua = window.navigator.userAgent.toLowerCase(); if ( ...

  10. 一个基于Vue.js+Mongodb+Node.js的博客内容管理系统

    这个项目最初其实是fork别人的项目.当初想接触下mongodb数据库,找个例子学习下,后来改着改着就面目全非了.后台和数据库重构,前端增加了登录注册功能,仅保留了博客设置页面,但是也优化了. 一.功 ...