当前位置: 首页 > news >正文

freemarkEngine文件ftl的可视化编辑

在做导出word文件功能时,需要准备ftl模板,设置一些通配符,之后通过相关编码,即可以实现业务数据渲染后导出word的功能。但是ftl文件一般我们看不太懂,所以可视化创建和修改就非常合适。

1、安装office2016版本(wps,2007office都不行)
代码ftl文件:
在这里插入图片描述
2、使用office2016word打开ftl文件
之后可以根据自己的需求去创建模板,需要替换业务的场景,使用${}定义通配符的方式。
在这里插入图片描述

3、示例代码

 public void exportWord(HttpServletRequest request, HttpServletResponse response,  String title) throws IOException {Map map = new HashMap<String, Object>();map.put("deputeNo","11");//委托案号map.put("deputeUnitName", "22");//委托单位Template template = configuration.getTemplate("aaa.ftl");File file = null;InputStream fin = null;ServletOutputStream out = null;try {// 调用工具类的createDoc方法生成Word文档  String name = "word.doc";file = new File(name);try {Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");template.process(map, writer);writer.close();} catch (Exception ex) {ex.printStackTrace();throw new RuntimeException(ex);}fin = new FileInputStream(file);response.setCharacterEncoding("utf-8");response.setContentType("application/msword");// 设置浏览器以下载的方式处理该文件名  String fileName = title + DateUtil.formatDate(new Date(), "yyyy-MM-dd") + ".doc";response.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));out = response.getOutputStream();byte[] buffer = new byte[512];  // 缓冲区  int bytesToRead = -1;// 通过循环将读入的Word文件的内容输出到浏览器中  while ((bytesToRead = fin.read(buffer)) != -1) {out.write(buffer, 0, bytesToRead);}} finally {if (fin != null) fin.close();if (out != null) out.close();if (file != null) file.delete(); // 删除临时文件}}

学海无涯苦作舟!!!

http://www.lryc.cn/news/265492.html

相关文章:

  • 2023 英特尔On技术创新大会直播 | 边云协同加速 AI 解决方案商业化落地
  • Q-star计划的更多细节
  • python3 数据分析项目案例,用python做数据分析案例
  • Android 12 (InputMethodManagerService) 替换默认输入法为Pinyin输入法
  • 【模式识别】探秘判别奥秘:Fisher线性判别算法的解密与实战
  • 【XML】TinyXML 详解
  • 泛社交裂变场景下AB增量科学评估方案
  • 【无标题】json报错
  • MyBatis中延迟加载,全局和局部的开启使用与关闭
  • MyBatis增删改查基础及其xml文件
  • 视觉学习(1)—— 理论
  • pip 常用指令 pip list 命令用法介绍
  • 【DP】62.不同路径
  • 大数据、知识图谱和强化学习的综合应用
  • MFC使用高速绘图控件high-speed Charting Control绘制柱形图
  • vue3 H5项目中实现PDF预览
  • 【WebRTC---源码篇】(十一:一)采集编码发送期间使用时间戳的详细解读
  • Python学习路线 - Python语言基础入门 - Python异常、模块与包
  • eventbus,在this.$on监听事件时无法在获取数据
  • 【Python必做100题】之第二十五题(统计字符)
  • 开发语言:ArkTS
  • Qt中字符串转换为JS的函数执行
  • TCP/IP:从数据包到网络的演变
  • 闪存驱动器与机械硬盘与固态硬盘
  • java String转asc码,然后ascII再转四位的16进制数。
  • 零基础制作宠物用品小程序
  • 【SpringBoot篇】解决缓存击穿问题① — 基于互斥锁方式
  • 系列一、GitHub搜索技巧
  • 35.java后端面试宝典
  • Linux 磁盘空间占满故障解决方法