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     这个是链接 比较详细 

 

 

                  

 

posted on 2021-06-04 11:10  暮黎  阅读(244)  评论(0)    收藏  举报

导航