图片对象的设置使用书签设置
package org.leaf.word.xdocreport;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import fr.opensagres.xdocreport.core.XDocReportException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException, XDocReportException {
final ExportData exportData = WordUtils.getExportData("F:\\idea-workspace\\my_source\\word-document\\src\\main\\resources\\xdocreport\\ODTHelloWordWithVelocity.docx");
exportData.setData("data", readJSON());
exportData.process(new FileOutputStream("F:\\idea-workspace\\my_source\\word-document\\src\\main\\resources\\xdocreport\\ODTHelloWordWithVelocity_out.docx"));
public static JSONObject readJSON() throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(new File("F:\\idea-workspace\\my_source\\word-document\\src\\main\\resources\\xdocreport\\xdocreport.json"), JSONObject.class);
"userName": "张三",
"applyDate": "2022-12-12",
"applyDetail": [
"sqxm": "北京出差",
"sqje": 123458.695,
"sxmx": "住宿",
"sqr": "张三",
"sqrq": "2022-12-26"
"sqxm": "北京出差",
"sqje": 1238.695,
"sxmx": "路费",
"sqr": "张三",
"sqrq": "2022-12-26"
"sqxm": "北京出差",
"sqje": 128.695,
"sxmx": "吃饭",
"sqr": "张三",
"sqrq": "2022-12-26"
"list": ["1、飞机票", "2、电影票", "3、住宿发票"]
普通文本使用${}
条件使用[#if condition] [/#if]
表格使用@before-row[#list data as d]和@after-row[/#list]表示遍历的开始和结束,文本的输入和普通文本一样
列表遍历使用[#list data.list as l]开始和[/#list]结束
XDocReport是GitHub上根据麻省理工学院许可证开源的Wrod导出框架。XDocReport可以根据ODT、Doc、Docx文档模板通过模板引擎语法(Freemarker、Velocity)转换为另外一种格式文档(Doc、Docx、XHTML、PDF)。
(一)xdocreport能做什么?
1.xdocreport是一个java api,它能够根据ms office(docx或者ppt)以及open office的odt创建的xml文档模板,与java模型一起配合生成你想要的docx或者odt文档报告。
2.同时你可以把生成的docx或者odt文档转换你想要的其它格式,例如pdf,xhtml等。
所以我们可...
如果你要先问我为什么要导出word?那么请你走开,你个杠精!
在完成这个功能时花费了大量的时间查阅资料,发现能满足导出复杂word文档的工具只有xdocreport,如果有其他的工具欢迎分享。废话不多说,上菜!
一、导入包
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocrep.
XDocReport介绍初步了解XDocReport适用范围源码地址模板引擎一个填充的简单例子需求设计设计填充模板最终效果图填充字段设置我对填充字段的理解图片填充设置代码编写maven依赖填充类模板加载设置域模拟填充数据开始填充测试结果更多内容...
初步了解XDocReport
XDocReport是一个用来进行文档填充和文档格式转换的java api。在一些项目中,我们可能需要对一份...
java freemarker + word 模板 生成 word 文档 (变量替换,数据的循环,表格数据的循环,以及图片的替换)
1,最近有个需求,动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式
1.1,这种方式虽然可行,但是生成的 xml 是在是太乱了,整理就得整理半天,而且一旦要修改模板,那简直就是灾难,而且据说还不兼容 WPS
1.2,所以笔者找到了以下可以直接用 word 文档作为模板的方法,这里做以下笔记,以下代码依赖于