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模板插入列表相关推荐

  1. java word表格_java操作word的表格

    java操作word的表格 最近项目中需要把提交的页面表单的数据动态写在word模板中,简单的写了个工具类.里面有怎眼操作word 中表格的内容,可以在word中已有的表格后面添加行并且可以增加内容. ...

  2. poi实现操作生成word表格和操作word中的图表数据

    poi实现操作生成word表格和操作word中的图表数据 写入word表格 1.1首先要将写入的数据整理好,将其封装在一个类中: 1.2 其次将数据写入word,写成表格 2 在word表格中动态修改 ...

  3. java word apache poi 操作word模板。

    apache poi 操作word模板. 操作方式: 1.对于固定格,可以遍历格子然后替换其中指定的值例如在要替换的cell写入${example} 这样格式,遍历到之后替换. 2.对于需要增长的表格 ...

  4. java word 模板_java通过word模板生成word文档

    public static void main(String[] args) { //模板.文件.图片路径 String workPath=System.getProperty("user. ...

  5. java poi word 图表_Java操作Poi--word图表中颜色的设置

    在做java 动态增删图表中,如果将原来的标签数据删除了,在新增标签数据,发现颜色没设置,然后找不到对应的方法. 将word模板另外存word.xml格式,你会发现word模板其实是一大堆标签,你操作 ...

  6. java书签_Java 操作Word书签(一):添加、删除、读取书签

    Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...

  7. java word插件开发_java生成word的几种方案

    1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用 ...

  8. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  9. java语言for模板_java版的模板语言

    最近心血来潮,开发了一个小工具,为了方便以后定制模板,打算使用模板语言,之前在项目中用过freemark和velocity,对于它们的语法都不喜欢,还是重造个轮子吧,哈哈. 先贴段代码吧: test ...

最新文章

  1. 算法-----有序数组的平方
  2. 设计模式 之 代理模式
  3. [云炬小程序实战笔记] 第1章 全新版:初识微信小程序
  4. RDS for MySQL Mysqldump常见问题及处理
  5. 简述python的特性_Python的特性概要
  6. [转]计算机视觉之跟踪算法——相关滤波器Correlation Filter
  7. 20165236 2017-2018-2 《Java程序设计》结对编程练习_四则运算
  8. oracle数据库将一列的值拼接成一行,并且各个值之间用逗号隔开
  9. UTM 用户线程模型
  10. .native.prevent是什么意思?
  11. QCC3040---PIO的配置方法
  12. 用python对《三国演义》的人物出场进行统计
  13. 章文嵩-构建云计算平台的实践
  14. 猩猩艾艾吸烟_艾艾在墙上谁是最公平的
  15. 「源码解读」知名程序员 TJ 的 only 库
  16. 破解无线路由器,获得微信等上网信息
  17. 【广告架构day2】新浪广告系统架构的演进之路:服务化改造
  18. 设置line-height无效的解决办法
  19. java 算出下一个工作日_Java 计算一段时间段内除去周六日、节假日的工作日数———超详细(全)...
  20. 软件工程第二次作业(王伟东)

热门文章

  1. iTunes 给iPhone制作铃声
  2. BL0940电能计量 设计
  3. CMake Error: The current CMakeCache.txt directory is different...
  4. Latex标题页上标和脚注的处理方法 如何在latex文件中添加footnote
  5. Vue 合同模板_【开源】后端开发也很容易上手的前端框架模板
  6. 《数字图像处理》第12讲——图像表示与描述
  7. android 熄屏 socket断开,Android 休眠导致的问题Socket断开
  8. 蚁群算法讲解python
  9. pacs通讯测试软件,全院级PACS系统模拟测试报告
  10. 关于Jetson TX2刷机各种问题(刷机后键盘等等奇葩错误)