Java  用Freemarker导出word文档总结

本文总结了如何使用Java和Freemarker将页面内容导出为word文档,包括模板创建、动态内容替换、代码实现及常用标签规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 用Freemarker导出word文档总结

前言

最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题。自己总结了一下,希望对大家有所帮助。
准备材料
1.word原件(模板) 2.编辑器(推荐Firstobject free XML editor)

实现步骤

  • 1.用Microsoft Office Word打开word原件;
  • 2.把需要动态修改的内容替换成${param},如果有图片,尽量选择较小的图片几十K左右,并调整好位置;
  • 3.另存为,选择保存类型Word 2003 XML 文档(*.xml)【这里说一下为什么用Microsoft Office Word打开且要保存为Word 2003XML,本人亲测,用WPS找不到Word 2003XML选项,如果保存为Word
    XML,会有兼容问题,避免出现导出的word文档不能用Word 2003打开的问题】,保存的文件名不要是中文;
  • 4.用Firstobject free XML editor打开文件,选择Tools下的Indent【或者按快捷键F8】格式化文件内容。左边是文档结构,右边是文档内容;
  • 5.将文档内容中需要动态修改内容的地方,换成freemarker的标识。其实就是Map<String, Object>中key,如${landName};
  • 6.在加入了图片占位的地方,会看到一片base64编码后的代码,把base64编码替换成${image},也就是Map<String, Object>中key,值必须要处理成base64;

代码如:<w:binData w:name=“wordml://自定义.png”
xml:space=“preserve”>${image}</w:binData>

注意:“>${image}<”这尖括号中间不能加任何其他的诸如空格,tab,换行等符号。 如果需要循环,则使用:<#list maps as
map></#list> maps是Map<String, Object>中key,值为数组,map为自定义;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值