java读写word模板_Java操作Word模板插入列表
Java操作Word模板插入列表
通过poi操作word,插入各种编号的列表,包括数字,字母,罗马字符,自定义任意字符。下面的示例就用了音乐符♬。
1.制作模板,插入列表使用语法*,模板内容为{{*number123}}
2.使用Poi-tl,添加依赖
com.deepoove
poi-tl
1.0.0
poi-tl是一个java的模板引擎。
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 datas = new HashMap() {
{
//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 pair) {
return new NumbericRenderData(pair, new ArrayList() {
{
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
java读写word模板_Java操作Word模板插入列表相关推荐
- java word表格_java操作word的表格
java操作word的表格 最近项目中需要把提交的页面表单的数据动态写在word模板中,简单的写了个工具类.里面有怎眼操作word 中表格的内容,可以在word中已有的表格后面添加行并且可以增加内容. ...
- poi实现操作生成word表格和操作word中的图表数据
poi实现操作生成word表格和操作word中的图表数据 写入word表格 1.1首先要将写入的数据整理好,将其封装在一个类中: 1.2 其次将数据写入word,写成表格 2 在word表格中动态修改 ...
- java word apache poi 操作word模板。
apache poi 操作word模板. 操作方式: 1.对于固定格,可以遍历格子然后替换其中指定的值例如在要替换的cell写入${example} 这样格式,遍历到之后替换. 2.对于需要增长的表格 ...
- java word 模板_java通过word模板生成word文档
public static void main(String[] args) { //模板.文件.图片路径 String workPath=System.getProperty("user. ...
- java poi word 图表_Java操作Poi--word图表中颜色的设置
在做java 动态增删图表中,如果将原来的标签数据删除了,在新增标签数据,发现颜色没设置,然后找不到对应的方法. 将word模板另外存word.xml格式,你会发现word模板其实是一大堆标签,你操作 ...
- java书签_Java 操作Word书签(一):添加、删除、读取书签
Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...
- java word插件开发_java生成word的几种方案
1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用 ...
- phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...
- java语言for模板_java版的模板语言
最近心血来潮,开发了一个小工具,为了方便以后定制模板,打算使用模板语言,之前在项目中用过freemark和velocity,对于它们的语法都不喜欢,还是重造个轮子吧,哈哈. 先贴段代码吧: test ...
最新文章
- 算法-----有序数组的平方
- 设计模式 之 代理模式
- [云炬小程序实战笔记] 第1章 全新版:初识微信小程序
- RDS for MySQL Mysqldump常见问题及处理
- 简述python的特性_Python的特性概要
- [转]计算机视觉之跟踪算法——相关滤波器Correlation Filter
- 20165236 2017-2018-2 《Java程序设计》结对编程练习_四则运算
- oracle数据库将一列的值拼接成一行,并且各个值之间用逗号隔开
- UTM 用户线程模型
- .native.prevent是什么意思?
- QCC3040---PIO的配置方法
- 用python对《三国演义》的人物出场进行统计
- 章文嵩-构建云计算平台的实践
- 猩猩艾艾吸烟_艾艾在墙上谁是最公平的
- 「源码解读」知名程序员 TJ 的 only 库
- 破解无线路由器,获得微信等上网信息
- 【广告架构day2】新浪广告系统架构的演进之路:服务化改造
- 设置line-height无效的解决办法
- java 算出下一个工作日_Java 计算一段时间段内除去周六日、节假日的工作日数———超详细(全)...
- 软件工程第二次作业(王伟东)
热门文章
- iTunes 给iPhone制作铃声
- BL0940电能计量 设计
- CMake Error: The current CMakeCache.txt directory is different...
- Latex标题页上标和脚注的处理方法 如何在latex文件中添加footnote
- Vue 合同模板_【开源】后端开发也很容易上手的前端框架模板
- 《数字图像处理》第12讲——图像表示与描述
- android 熄屏 socket断开,Android 休眠导致的问题Socket断开
- 蚁群算法讲解python
- pacs通讯测试软件,全院级PACS系统模拟测试报告
- 关于Jetson TX2刷机各种问题(刷机后键盘等等奇葩错误)