spring freemaker 导出word
最近有个功能是导出word 因为之前做的导出 一直都是excel 所以记录一下 由于时间和业务的原因 暂时返回的是图片地址 后期根据情况 可能会更新
步骤:
准备工作:
一:使用word 创建模板 格式大致如下


(如果是图片的话 在对应的位置 先复制一张图片 ) 根据你的业务需求 将word做好后,另存为xml格式,然后修改成ftl格式,(修改成ftl是为了方便java代码后续的读取和操作),如下:
然后就是解决ftl文件里面因为格式改变而导致占位符分散的问题了
二:解决占位符问题:
修改前 :
修改后:
关于循环列表的话:在对应的部分加上list 标签 然后去点就好了



ps:这个时候,有时候会出现头文件报红的问题 ,如果使用的是idea的话 直接导入将报红的部分添加进去就好了,操作如下:

1.首先选中 报红的URI,Ctrl C 复制
2.打开 File -> setting -> Schemas and DTDs (或者快捷键 ctrl alt s)
3.找到 Ignored Schemas and DTDs ,点右侧的加号
4.将复制的URI 贴进去,点击OK,再点击下面的 apply 和 ok


解决了以上的问题后,就可以写后台代码了
后台:
一:将ftl文件放置在对应目录下:

二:读取模板文件,再获取业务数据,也就是你要导出的数据:

三:开始导出

这样整个后台的代码就结束啦,如果需要导出图片的话 ,将放回的图片字段进行base64转码,再返回给模板就可以了。
ps:ftl 里面的返回数据 需要判断非空 不然会报错 除了在后台判断wai freemarker也有自己的判断非空的语法
${name!"tom"} 判断name 不为空 并设置默认值
${(user.name)!} 判断对象属性不为空
https://blog.csdn.net/zz210891470/article/details/82905295 这个是链接 比较详细
浙公网安备 33010602011771号