痛点

还在为了大量的数据导出到word而烦恼么,还在为枯燥的工作的发愁么,今天让我们用工具的力量来提高生活质量

使用软件及网站

WPS 永远的神
格式化xml文档 XML格式化
千万别用 office 那个贼坑,转换成xml 还要调整格式,WPS开箱即用

第一步写代码

工程架构,我实现了一个完整的后端接口,用postman调用即可,去掉了数据库调用,实际开发按需求加即可,

http://localhost:8080/drm/report/download

效果图

1、代码解释

  • 我们更改的就是这个generateMap() 方法,把需要填充的数据放入map中
  • map可以放入对象、集合也可以放入单个值,如 String、Integer等

2、准备word模板文档,必须使用wps,Office不好用


  • 先在word文档中放入一张图片以便接下来修改循环条件使用
  • 填充模板,语法类似 mybatis 中的格式 ,${s.xx}
  • 对象就是第一步代码解释中 我们像 map 中放入的 key ,属性就是对象的字段,如下面这个Team 对象,调用时我们用${team.num}即可
  • 表单循环原理一样

3、将word文档另存为xml文件

4、格式化xml文档

使用开头使用工具里面的网站即可

5、在需要循环展示的地方加代码

  • 找到第一个需要循环的占位符,然后 找到他的父级标签<w:tr> 在其上面加入 <#list careers as career>表示 循环遍历 careers,类比java 中的增加for遍历。
  • 然后找到 <w:tr> 的结束标签 在其下方加入 </#list>, 或者根据 循环遍历中最后一个模板占位符锁定末尾

6、给图片加循环代码

  • 在照片外面加上循环 <#list images as image> 结尾也需要加上 </#list>
  • 首先将那一大串的base64编码替换成 ${image.picture}
  • 然后将 w:name<v:imagedata 中的内容替换成 ${image.picName}
  • <v:shape id 中的id 替换成 ${image.id}

7、将xml 文件另存为.ftl文件

8、将ftl文件放入一个文件夹

配置 application.yml

  • tmplPath 为模板存放文件夹
  • autoFlowTmpl 为模板名
  • port 启动端口号
server:port: 10086report:tmplPath: D:\\wordreportautoFlowTmpl: nbaNew.ftl

9、启动项目,并使用postman测试

  • teamIds 随便输入一个值,实际业务场景会用到,测试环境不需要

10、查看生成的报告


通过查看日志,发现报告在系统临时目录,打开查看

项目已上传 github star点起来

freemarker 生成word,支持循环导出图片 WPS版本相关推荐

  1. 使用FreeMarker生成word文档(带图片),word转pdf,预览pdf,pdf下载工具类

    一.下载或配置: 下载jar包 :freemaker的jar包下载 下载jar包 :aspose-words的jar包下载 或者配置maven依赖: pom.xml添加aspose的依赖包(maven ...

  2. java根据 freemarker 生成word文档包含图片和动态表格

    需求 根据提供的模板样式,生成相对应的word文档,之前可以用xdoc生成,但是目前这个需求 是需要动态生成excel表格,有的单元格需要隐藏不展示,所以这边利用freemarker标签解析, 根据数 ...

  3. (详细)如何使用Freemarker生成Word文档中的文本、图片、表格、附件?

    前言-Freemarker简单介绍 近期项目工作中需要编写大量格式相同但数据不同的Word文档,需要实现自动生成文档的效果,但是通过网上冲浪和官方文档搜索,相对来说,没有分类整理的文档,因此自己抽空简 ...

  4. 若依 springboot 使用freemarker生成word文件,并导出下载

    目录 freemarker生成word文件并导出 一.环境准备 二.编写代码 1.实体类 2.mapper.xml文件 3.mapper.java文件 4.Service.java 5.Service ...

  5. spring使用freemarker生成word文档包含表格、图片(循环插入)

    spring使用freemarker生成word文档包含表格.图片(循环插入) 效果图 因为测试数据是重复的,所以显示都是重复的数据,替换导入map中的数据可以显示不重复的数据. 操作步骤 1,创建一 ...

  6. java生成word(报告报表)含统计图表图片、循环表格,Spring Boot整合word生成

    先给大家一个效果图: 左侧是word模板,右侧是生成后的word文档. 在工作中经常用到会有一些生成统计报告.请假等word的功能需求,小编之前做了一些报表的生成,使用过freemarker和poi, ...

  7. freemarker生成word 兼容wps/office/小程序打开

    freemarker生成word 兼容wps/office/小程序打开 (服务器必须是windows) 一:目的:兼容wps/电脑端office/小程序打开 freemarker生成的word底层技术 ...

  8. 使用freemarker生成word文档(包含遍历多条数据、图片)

    在做项目的过程中,有时候需要把数据生成word文档,常用的有POI.ITEXT等,在这篇文章中我们使用freemarker模板来生成我们想要的word文档. 首先我们需要使用office word来编 ...

  9. 用freemarker生成word文档,并插入图片

    用freemarker生成word文档,并插入图片 最近需要做一个问卷功能,要求用户填写完问卷后,后台会生成一个word文档,将用户提交的数据插入到word中. 创建word模板 新建一个word文档 ...

  10. Freemarker生成word文件,打开后页眉和页脚图片不显示

    Freemarker生成word文件,打开后页眉和页脚图片不显示 在我们开发过程中通常会把模板文件Ctrl+Alt+L格式化,方便处理.这样就造成word的标签格式产生多余的换行或者空白,但是word ...

最新文章

  1. python22期_python学习第22期
  2. Linux修改/etc/profile配置错误command is not found自救方法
  3. python一点基础都没有的怎么办-Python基础常见问题总结(一)
  4. BROCADE使用小技巧
  5. 网信办:网络音视频等平台不得诱导未成年人参与应援集资等活动
  6. jstack处理Java中CPU100%的思路流程
  7. 地图开发中用到的比例尺和分辨率
  8. 打游戏用什么蓝牙耳机好?英雄联盟手游推荐蓝牙耳机
  9. Java 生成水印图片
  10. 微信小程序实现微信APP上的扫一扫扫码跳到小程序对应的结果页面和签字等功能
  11. centos7.1 修改selinux相关机制后出现开机失败,报错faild to load selinux policy  freezing
  12. Excel 如何排序与多关键字排序
  13. easyflash源码分析流程图
  14. epoll为什么这么快,epoll的实现原理
  15. Python标准库文件基本操作以及中文路径问题
  16. SK Innovation全球锂电战略布局揭秘
  17. AES加密/解密报错,Input length must be multiple of 16 when decrypting with padded cipher
  18. H264编码- 码率控制 RQ 模型参数推导过程以及JM代码分析
  19. 计算机组成原理第六章下半章知识总结
  20. 《计算广告》学习笔记(一)

热门文章

  1. ParticleEmitter旧粒子系统退役 2018新粒子系统
  2. pygame之surface
  3. adb路径不能包含2空格remote couldn‘t create file: Is a directory
  4. python3字符串详解速查,新手流泪,老手顿悟
  5. html中红色星号,使用CSS中的星号(*)通配符的总结
  6. mysql 1548_MySQL创建函数由于Error 1548失败
  7. Arduino servo库函数说明(舵机函数库)
  8. QML 全屏 输入法无法显示
  9. 无线电波是怎么产生的
  10. linux命令du -sh,du命令_Linux du 命令用法详解:显示每个文件和目录的磁盘使用空间...