Java导出word文档模板

完全参考:http://t.csdnimg.cn/GwBdm

准备 新建word文档 命名model.docx

另存为.xml文件

再将文件后缀改为.ftl

再在.ftl文件中改图片的${}

搜索w:binData 修改

<w:binData w:name=“wordml://1.png”>${img}</w:binData>

依赖

   <!--导出word--><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.template.freemarker</artifactId><version>2.0.2</version></dependency>

controller


import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.Version;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import sun.misc.BASE64Encoder;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;@RestController
@RequestMapping("/word")
public class WordController {@GetMapping("/export1")public void export1(HttpServletRequest request, HttpServletResponse response) throws Exception {try {Map<String, Object> dataMap = new HashMap<String, Object>();//编号dataMap.put("id", "123456");//日期dataMap.put("date", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse("2018-09-19")));
//            //附件张数
//            dataMap.put("number", 1);
//            //受款人
//            dataMap.put("payee", "张三");
//            //付款用途
//            dataMap.put("use_of_payment", "test");
//            //大写金额
//            dataMap.put("capitalization_amount", "200.00");
//            //小写金额
//            dataMap.put("lowercase_amount", "100");dataMap.put("img", getImageStr("D:\\3dmax\\yyqx\\1669536232733_2.webp"));//Configuration 用于读取ftl文件Configuration configuration = new Configuration(new Version("2.3.0"));configuration.setDefaultEncoding("utf-8");//指定路径的第二种方式,我的路径是F:/test.ftlconfiguration.setDirectoryForTemplateLoading(new File("D:\\NCS\\note\\word"));//ftl文件目录//输出文档路径及名称File outFile = new File("D:\\NCS\\note\\word\\受益人信息.doc");//以utf-8的编码读取ftl文件Template template = configuration.getTemplate("model.ftl", "utf-8");Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 10240);template.process(dataMap, out);out.close();} catch (Exception e) {e.printStackTrace();}}/*** 本地图片地址* @param imgFile 本地图片地址* @return*/public String getImageStr(String imgFile) {InputStream in = null;byte[] data = null;try {in = new FileInputStream(imgFile);data = new byte[in.available()];in.read(data);in.close();} catch (Exception e) {e.printStackTrace();}BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265526.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统编程(零):cmd vim gcc gdb

Linux 系统编程 Linux 系统编程&#xff08;文章链接汇总&#xff09; 1. Linux(Ubuntu) cmd 指令详解 1.1 shell 1.1.1 shell 家族 shell&#xff1a;命令解释器&#xff0c;根据输入的命令执行相应命令查看当前系统下有哪些 shell$ cat /etc/shells# /etc/shells: valid l…

(04730)电路分析基础之正弦交流电路(二)

正弦交流电的向量表示法 一个正弦量通常有两种表示法&#xff1a;第一种是三角函数解析式&#xff0c;如 &#xff0c;这是正弦量的最基本表示法&#xff1b;另一种是用波形图来表示。这两种方法均能正确无误地表达出正弦量的三要素。但是&#xff0c;在正弦交流电路的分析和计…

2023最新八股文前端面试题

第一章 Css 1.说一下CSS的盒模型。 在HTML页面中的所有元素都可以看成是一个盒子盒子的组成:内容content、内边距padding、边框border、外边距margin盒模型的类型: 标准盒模型 margin border padding content IE盒模型 margin content(border padding) 控制盒模型的模式…

elementplus的upload组件的样式不显示,自己写样式

.avatar-uploader-icon{border-radius: 5px; border: 1px dashed #8c939d;font-size: 28px;color: #8c939d;width: 178px;height: 178px;text-align: center; }.avatar-uploader-icon:hover{border: 1px dashed #409eff;}

Golang导入导出Excel表格

最近项目开发中有涉及到Excel的导入与导出功能&#xff0c;特别是导出表格时需要特定的格式&#xff08;单元格合并等&#xff09;&#xff0c;废话不多说&#xff0c;直接上代码了。 首先用到一个第三方库&#xff0c;实测还是很强大很好用的&#xff0c;就是这个https://git…

(JAVA)-IDEA导第三方包

1.下载好第三方的包 2.将jar包复制&#xff0c;上图中的第一个数字jar包是我们要选择的 3.模块下新建外包文件 4.将复制的jar文件粘贴进去 . 5.右键jar包将文件与jar包关联 注意&#xff1a;第三方库中有些名字跟java包中重名&#xff0c;导包时候注意不要导错了。

如何用CHAT写方案?

问CHAT&#xff1a;帮我写一份航空无动力乐园的可执行方案 CHAT回复&#xff1a; 方案一&#xff1a;概念及地点筛选 航空无动力乐园是指以航空运动为主题&#xff0c;利用自然地形与风力进行滑翔、跳伞等无动力航空运动的户外休闲娱乐乐园。鉴于此&#xff0c;首需要确定乐园…

使用CLion进行cuda编程,并使用cuda-gdb对核函数进行debug,这可能是全网你能够找到的最详细的CLion和cuda编程环境配置教程了

文章目录 前言一、环境准备二、相关学习资料三、环境配置1.新建Clion C Executable项目2.在Clion中的ToolChains中配置cuda-gdb3.配置CMake options4.配置CMakeLists.txt(1) Failed to compute shorthash for libnvrtc.so(2) c: error: unrecognized command-line option -G(3)…

【设计模式--结构型--桥接模式】

设计模式--结构型--桥接模式 桥接&#xff08;Bridge&#xff09;模式定义结构案例好处使用场景 桥接&#xff08;Bridge&#xff09;模式 定义 将抽象与实现分离&#xff0c;使他们可以独立变化。它是用组合关系代替继承关系来实现&#xff0c;从而降低了抽象和实现这两个维…

广州华锐互动:VR模拟法庭虚拟体验软件让学生更好地理解法律实际运用

随着科技的发展&#xff0c;我们的教育方式正在发生着翻天覆地的变化。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术的出现&#xff0c;为我们提供了一种全新的、富有沉浸感的学习方式。尤其是在法律教学中&#xff0c;广州华锐互动的VR模拟法庭虚拟体验系统带来了…

西南科技大学数字电子技术实验四(基本触发器逻辑功能测试及FPGA的实现)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) (1)D触发器 特征方程: Q…

22款奔驰GLS450升级HUD抬头显示 告别低头

随着科技飞速地发展&#xff0c;从汽车领域就可以看出&#xff0c;尤其是汽车的抬头显示器&#xff0c;一经推出就吸引了很多的车主。星骏汇小许Xjh15863 升级HUD抬头显示&#xff0c;HUD与汽车系统进行完整的数据信息连接&#xff0c;整合成大数据&#xff0c;然后将一些重要信…