maven的pom

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/org.apache.poi.xwpf.converter.core -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.core</artifactId>
<version>1.0.6</version>
</dependency>

Java代码

  1 package com.seawater.controller;
2
3 import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
4 import org.apache.poi.xwpf.usermodel.*;
5 import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
6
7 import java.io.File;
8 import java.io.FileOutputStream;
9 import java.math.BigInteger;
10
11
12 /**
13 * Created by zhouhs on 2017/1/9.
14 */
15 public class WordExportController {
16
17 public static void main(String[] args)throws Exception {
18 //Blank Document
19 XWPFDocument document= new XWPFDocument();
20
21 //Write the Document in file system
22 FileOutputStream out = new FileOutputStream(new File("create_table.docx"));
23
24
25 //添加标题
26 XWPFParagraph titleParagraph = document.createParagraph();
27 //设置段落居中
28 titleParagraph.setAlignment(ParagraphAlignment.CENTER);
29
30 XWPFRun titleParagraphRun = titleParagraph.createRun();
31 titleParagraphRun.setText("Java PoI");
32 titleParagraphRun.setColor("000000");
33 titleParagraphRun.setFontSize(20);
34
35
36 //段落
37 XWPFParagraph firstParagraph = document.createParagraph();
38 XWPFRun run = firstParagraph.createRun();
39 run.setText("Java POI 生成word文件。");
40 run.setColor("696969");
41 run.setFontSize(16);
42
43 //设置段落背景颜色
44 CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
45 cTShd.setVal(STShd.CLEAR);
46 cTShd.setFill("97FFFF");
47
48
49 //换行
50 XWPFParagraph paragraph1 = document.createParagraph();
51 XWPFRun paragraphRun1 = paragraph1.createRun();
52 paragraphRun1.setText("\r");
53
54
55 //基本信息表格
56 XWPFTable infoTable = document.createTable();
57 //去表格边框
58 infoTable.getCTTbl().getTblPr().unsetTblBorders();
59
60
61 //列宽自动分割
62 CTTblWidth infoTableWidth = infoTable.getCTTbl().addNewTblPr().addNewTblW();
63 infoTableWidth.setType(STTblWidth.DXA);
64 infoTableWidth.setW(BigInteger.valueOf(9072));
65
66
67 //表格第一行
68 XWPFTableRow infoTableRowOne = infoTable.getRow(0);
69 infoTableRowOne.getCell(0).setText("职位");
70 infoTableRowOne.addNewTableCell().setText(": Java 开发工程师");
71
72 //表格第二行
73 XWPFTableRow infoTableRowTwo = infoTable.createRow();
74 infoTableRowTwo.getCell(0).setText("姓名");
75 infoTableRowTwo.getCell(1).setText(": seawater");
76
77 //表格第三行
78 XWPFTableRow infoTableRowThree = infoTable.createRow();
79 infoTableRowThree.getCell(0).setText("生日");
80 infoTableRowThree.getCell(1).setText(": xxx-xx-xx");
81
82 //表格第四行
83 XWPFTableRow infoTableRowFour = infoTable.createRow();
84 infoTableRowFour.getCell(0).setText("性别");
85 infoTableRowFour.getCell(1).setText(": 男");
86
87 //表格第五行
88 XWPFTableRow infoTableRowFive = infoTable.createRow();
89 infoTableRowFive.getCell(0).setText("现居地");
90 infoTableRowFive.getCell(1).setText(": xx");
91
92
93 //两个表格之间加个换行
94 XWPFParagraph paragraph = document.createParagraph();
95 XWPFRun paragraphRun = paragraph.createRun();
96 paragraphRun.setText("\r");
97
98
99
100 //工作经历表格
101 XWPFTable ComTable = document.createTable();
102
103
104 //列宽自动分割
105 CTTblWidth comTableWidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
106 comTableWidth.setType(STTblWidth.DXA);
107 comTableWidth.setW(BigInteger.valueOf(9072));
108
109 //表格第一行
110 XWPFTableRow comTableRowOne = ComTable.getRow(0);
111 comTableRowOne.getCell(0).setText("开始时间");
112 comTableRowOne.addNewTableCell().setText("结束时间");
113 comTableRowOne.addNewTableCell().setText("公司名称");
114 comTableRowOne.addNewTableCell().setText("title");
115
116 //表格第二行
117 XWPFTableRow comTableRowTwo = ComTable.createRow();
118 comTableRowTwo.getCell(0).setText("2016-09-06");
119 comTableRowTwo.getCell(1).setText("至今");
120 comTableRowTwo.getCell(2).setText("seawater");
121 comTableRowTwo.getCell(3).setText("Java开发工程师");
122
123 //表格第三行
124 XWPFTableRow comTableRowThree = ComTable.createRow();
125 comTableRowThree.getCell(0).setText("2016-09-06");
126 comTableRowThree.getCell(1).setText("至今");
127 comTableRowThree.getCell(2).setText("seawater");
128 comTableRowThree.getCell(3).setText("Java开发工程师");
129
130
131 CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
132 XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
133
134 //添加页眉
135 CTP ctpHeader = CTP.Factory.newInstance();
136 CTR ctrHeader = ctpHeader.addNewR();
137 CTText ctHeader = ctrHeader.addNewT();
138 String headerText = "Java POI create MS word file.";
139 ctHeader.setStringValue(headerText);
140 XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
141 //设置为右对齐
142 headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
143 XWPFParagraph[] parsHeader = new XWPFParagraph[1];
144 parsHeader[0] = headerParagraph;
145 policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
146
147
148 //添加页脚
149 CTP ctpFooter = CTP.Factory.newInstance();
150 CTR ctrFooter = ctpFooter.addNewR();
151 CTText ctFooter = ctrFooter.addNewT();
152 String footerText = "http://blog.csdn.net/zhouseawater";
153 ctFooter.setStringValue(footerText);
154 XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
155 headerParagraph.setAlignment(ParagraphAlignment.CENTER);
156 XWPFParagraph[] parsFooter = new XWPFParagraph[1];
157 parsFooter[0] = footerParagraph;
158 policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
159
160
161 document.write(out);
162 out.close();
163 System.out.println("create_table document written success.");
164 }
165
166
167 }

背景颜色

1 //设置段落背景颜色
2 CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
3 cTShd.setVal(STShd.CLEAR);
4 cTShd.setFill("97FFFF");

Java POI 生成Word文档的更多相关文章

  1. POI生成WORD文档

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

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

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

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

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

  4. Java POI 解析word文档

    实现步骤: 1.poi实现word转html 2.模型化解析html 3.html转Map数组 Map数组(数组的操作处理不做说明) 1.导jar包. 2.代码实现 package com.web.o ...

  5. [转载]Java动态生成word文档(图文并茂)

    很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...

  6. [原创]Java动态生成word文档(图文并茂)

    很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...

  7. java freemark生成word文档

    1.下载freemarker-2.3.19.jar 2.把要填充的内容用  ${title},${no}代替 3.用word 打开,保存为2003xml 4.打开生成xml文件,看下有没有把表达式  ...

  8. java POI往word文档中指定位置插入表格

    1.Service  demo import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...

  9. java poi 合并 word文档

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import jav ...

  10. velocity模板技术生成word文档

    本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...

随机推荐

  1. 【ASPLOS 2022】机器学习访存密集计算编译优化框架AStitch,大幅提升任务执行效率

    简介: 近日,关于机器学习访存密集计算编译优化框架的论文<AStitch: Enabling A New Multi-Dimensional Optimization Space for Mem ...

  2. 如何使用 PTS 快速发起微服务压测

    ​简介:本文讲阐述什么是微服务架构.微服务架构对系统稳定性带来的影响,以及用性能测试验证稳定性的必要性.用户进行微服务压测的痛点和 PTS 的独特优势.云上使用 PTS 快速发起微服务压测的步骤,以及 ...

  3. 免费体验!阿里云智能LOGO帮你解决设计难题

    ​简介:超实用!零基础搞定一个高大上的智能logo设计 新年过后,往往是大家一年中士气最足的时候,散去了年末的疲惫和emo,重燃对新一年的热情和希望. 想创业的朋友们同样意气风发,趁着新年的劲头想大干 ...

  4. [FE] nvm-windows: Microsoft/NPM/Google 推荐 Windows 的 Node.js 版本管理器, posix 的 nvm-sh/nvm

    1. 到 github 下载 nvm-setup.zip 并安装. Releases · coreybutler/nvm-windows (github.com) 2. 安装一个版本的 nodejs. ...

  5. SpringBoot获取Bean的工具类

    1.beanName 默认是类名首字母小写 下面的类:beanName = bean1 @Component public class Bean1 { public String getBean1() ...

  6. C#中的对象深拷贝和浅拷贝

    目录 C#中的对象深拷贝和浅拷贝 概述 1. 浅拷贝 2. 深拷贝 总结 引用 C#中的对象深拷贝和浅拷贝 概述 在C#中,对象拷贝是指将一个对象的副本创建到另一个对象中.对象拷贝通常用于数据传输或创 ...

  7. leaflet 河流颜色渐变效果

    1.Leaflet-polycolor github地址:https://github.com/Oliv/leaflet-polycolor 插件缺陷:需要把每个折点的颜色都指定才行,一般做不到 2. ...

  8. Splashtop 扩展了所有 Android 8.0 以上设备的远程控制功能

    好消息:Splashtop远程访问和远程支持软件现在支持100多个品牌的 Android 设备. 2020年9月15日,远程访问和远程支持解决方案的全球领导者 Splashtop Inc. 宣布:所有 ...

  9. UploadLabs靶场

    目录 Pass-01 Pass-02 Pass-03 Pass-04 Pass-05 Pass-06 Pass-07 Pass-08 Pass-09 Pass-10 Pass-11 Pass-12 P ...

  10. 第三方调用saltstack

    python api使用 实例及工作原理解析 指定target 函数,命令等等,就可以可以了. [root@mcw01 ~]# python Python 2.7.5 (default, Aug 4 ...