业务场景
导出所有报名用户的报名表,每个用户报名单在word文档中单独一页,方便打印。
报名单模板如下:
需求:一份word文档,包含所有用户的报名单,每个用户单独一页。
实现思路
- 将报名单内容设置成模板,其中需求提到每个用户要单独一页,所以在模板的后面加上换页效果
- 一份word文档里面要包含多个用户报名信息,所以模板要重复使用,只是替换用户信息
- 将word模板转成xml文件,获取内容信息的模板格式
- 将xml转成ftl格式,支持el表达式,支持循环,很好的实现需求
具体实现
- 用工具(word/wps)创建好模板的word文档
- 将word文档另存为XML文件,命名为apply.xml,打开xml文件,如果是压缩后的XML内容,直接在网上将其格式化,方便阅读和修改
- 将XML中需要替换的内容使用EL表达式代替,如:${name}。PS:可以在创建模板时直接使用EL表达式,但是注意在转换成XML的时候可能会存在某些意外,如果不熟悉使用。
- 业务需要多个报名单,每份报名单格式都是一样的,所以在XML内容的一开始就加上循环遍历的代码:<#list recordList as record>…..
部分XML内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application prog?>
<w:wordDocument xmlns:aml="http://schemas.microsoft/aml/2001/core"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.microsoft/office/word/2003/wordml"
xmlns:wx="http://schemas.microsoft/office/word/2003/auxHint"
xmlns:wsp="http://schemas.microsoft/office/word/2003/wordml/sp2"
xmlns:sl="http://schemas.microsoft/schemaLibrary/2003/core"
w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no"
xml:space="preserve">
<w:body>
<#list recordList as record>
...... 此处省略部分内容
业务场景
导出所有报名用户的报名表,每个用户报名单在word文档中单独一页,方便打印。
报名单模板如下:
需求:一份word文档,包含所有用户的报名单,每个用户单独一页。
实现思路
- 将报名单内容设置成模板,其中需求提到每个用户要单独一页,所以在模板的后面加上换页效果
- 一份word文档里面要包含多个用户报名信息,所以模板要重复使用,只是替换用户信息
- 将word模板转成xml文件,获取内容信息的模板格式
- 将xml转成ftl格式,支持el表达式,支持循环,很好的实现需求
具体实现
- 用工具(word/wps)创建好模板的word文档
- 将word文档另存为XML文件,命名为apply.xml,打开xml文件,如果是压缩后的XML内容,直接在网上将其格式化,方便阅读和修改
- 将XML中需要替换的内容使用EL表达式代替,如:${name}。PS:可以在创建模板时直接使用EL表达式,但是注意在转换成XML的时候可能会存在某些意外,如果不熟悉使用。
- 业务需要多个报名单,每份报名单格式都是一样的,所以在XML内容的一开始就加上循环遍历的代码:<#list recordList as record>…..
部分XML内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application prog?>
<w:wordDocument xmlns:aml="http://schemas.microsoft/aml/2001/core"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.microsoft/office/word/2003/wordml"
xmlns:wx="http://schemas.microsoft/office/word/2003/auxHint"
xmlns:wsp="http://schemas.microsoft/office/word/2003/wordml/sp2"
xmlns:sl="http://schemas.microsoft/schemaLibrary/2003/core"
w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no"
xml:space="preserve">
<w:body>
<#list recordList as record>
...... 此处省略部分内容