Java操作word模板插入多种编号的列表
来源:互联网 发布:手机拍摄淘宝照片 编辑:程序博客网 时间:2024/06/05 15:33
Java操作Word模板插入列表
通过poi操作word,插入各种编号的列表,包括数字,字母,罗马字符,自定义任意字符。下面的示例就用了音乐符♬。
1.制作模板,插入列表使用语法*,模板内容为{{*number123}}
2.使用Poi-tl,添加依赖
<dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.0.0</version></dependency>
poi-tl是一个java的模板引擎。
GitHub主页:https://github.com/Sayi/poi-tl
Github Wiki 地址
3.Java代码示例
package com.deepoove.poi.tl;import static com.deepoove.poi.data.NumbericRenderData.FMT_BULLET;import static com.deepoove.poi.data.NumbericRenderData.FMT_DECIMAL;import static com.deepoove.poi.data.NumbericRenderData.FMT_DECIMAL_PARENTHESES;import static com.deepoove.poi.data.NumbericRenderData.FMT_LOWER_LETTER;import static com.deepoove.poi.data.NumbericRenderData.FMT_LOWER_ROMAN;import static com.deepoove.poi.data.NumbericRenderData.FMT_UPPER_LETTER;import static com.deepoove.poi.data.NumbericRenderData.FMT_UPPER_ROMAN;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import org.apache.commons.lang3.tuple.Pair;import org.junit.Test;import org.openxmlformats.schemas.wordprocessingml.x2006.main.STNumberFormat;import org.openxmlformats.schemas.wordprocessingml.x2006.main.STNumberFormat.Enum;import com.deepoove.poi.XWPFTemplate;import com.deepoove.poi.data.NumbericRenderData;import com.deepoove.poi.data.TextRenderData;/** * 列表模板 * @author Sayi * @version 0.0.5 */public class NumbericRenderTest { @SuppressWarnings("serial") @Test public void testNumbericRender() throws Exception { Map<String, Object> datas = new HashMap<String, Object>() { { //1. 2. 3. put("number123", getData(FMT_DECIMAL)); put("number123_dulplicate", getData(FMT_DECIMAL)); //1) 2) 3) put("number123_kuohao", getData(FMT_DECIMAL_PARENTHESES)); //无序 put("bullet", getData(FMT_BULLET)); //A B C put("ABC", getData(FMT_UPPER_LETTER)); //a b c put("abc", getData(FMT_LOWER_LETTER)); //ⅰ ⅱ ⅲ put("iiiiii", getData(FMT_LOWER_ROMAN)); //Ⅰ Ⅱ Ⅲ put("IIIII", getData(FMT_UPPER_ROMAN)); //自定义有序列表显示 (one) (two) (three) put("custom_number", getData(Pair.of(STNumberFormat.CARDINAL_TEXT, "(%1)"))); //自定义无序列表显示:定义无序符号 put("custom_bullet", getData(Pair.of(STNumberFormat.BULLET, "♬"))); } }; XWPFTemplate template = XWPFTemplate.compile("src/test/resources/numberic.docx") .render(datas); FileOutputStream out = new FileOutputStream("out_numberic.docx"); template.write(out); out.flush(); out.close(); template.close(); } @SuppressWarnings("serial") private NumbericRenderData getData(Pair<Enum, String> pair) { return new NumbericRenderData(pair, new ArrayList<TextRenderData>() { { add(new TextRenderData("df2d4f", "Deeply in love with the things you love, just deepoove.")); add(new TextRenderData("Deeply in love with the things you love, just deepoove.")); add(new TextRenderData("5285c5", "Deeply in love with the things you love, just deepoove.")); } }); }}
输出word
阅读全文
0 0
- Java操作word模板插入多种编号的列表
- Java操作word模板插入图片
- 【Word】Word2010中插入多级列表编号的三种方法
- java操作word模板
- Java操作word模板文件
- Word 2007 插入自动编号的图标序号
- Word2010中插入多级列表编号的三种方法
- Word2010中插入多级列表编号的三种方法
- win form 操作word模板插入文字、图片及表格
- Word 2007教程:使用多级编号列表
- java/poi读取word,并替换word中的文本内容,向word中插入图片的操作
- java/poi读取word,并替换word中的文本内容,向word中插入图片的操作
- java根据ftl模板生成word文档(列表)
- word中的表格怎么按照章节自动插入题注(即表头的编号)
- microsoft word中在公式后插入可交叉引用的公式编号
- Word自动编号的应用
- word 操作编号 和目录 样式
- Python redis 列表的取出,插入操作
- 单例模式总结
- 设计模式之原型模式
- eclipse + pydev 创建django项目
- nat123端口映射: 外网通过ssh访问内网非公网ip的服务器
- web移动端开发技巧
- Java操作word模板插入多种编号的列表
- TC实现不重复取数功能
- java加锁
- 堆和栈
- CSS 点击事件on 和onclick有什么区别? // CSS关于文本的那几个实用的属性
- android QMI机制---Modem消息接收
- 学习:C++ Primer 第1章 开始
- 一些学习记录
- 【Docker加速】- 解决docker pull镜像速度慢的问题