最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

借助freemarker实现word模板复制功能

业界 admin 11浏览 0评论

业务场景

导出所有报名用户的报名表,每个用户报名单在word文档中单独一页,方便打印。

报名单模板如下:

需求:一份word文档,包含所有用户的报名单,每个用户单独一页。

实现思路

  1. 将报名单内容设置成模板,其中需求提到每个用户要单独一页,所以在模板的后面加上换页效果
  2. 一份word文档里面要包含多个用户报名信息,所以模板要重复使用,只是替换用户信息
  3. 将word模板转成xml文件,获取内容信息的模板格式
  4. 将xml转成ftl格式,支持el表达式,支持循环,很好的实现需求

具体实现

  1. 用工具(word/wps)创建好模板的word文档
  2. 将word文档另存为XML文件,命名为apply.xml,打开xml文件,如果是压缩后的XML内容,直接在网上将其格式化,方便阅读和修改
  3. 将XML中需要替换的内容使用EL表达式代替,如:${name}。PS:可以在创建模板时直接使用EL表达式,但是注意在转换成XML的时候可能会存在某些意外,如果不熟悉使用。
  4. 业务需要多个报名单,每份报名单格式都是一样的,所以在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文档,包含所有用户的报名单,每个用户单独一页。

实现思路

  1. 将报名单内容设置成模板,其中需求提到每个用户要单独一页,所以在模板的后面加上换页效果
  2. 一份word文档里面要包含多个用户报名信息,所以模板要重复使用,只是替换用户信息
  3. 将word模板转成xml文件,获取内容信息的模板格式
  4. 将xml转成ftl格式,支持el表达式,支持循环,很好的实现需求

具体实现

  1. 用工具(word/wps)创建好模板的word文档
  2. 将word文档另存为XML文件,命名为apply.xml,打开xml文件,如果是压缩后的XML内容,直接在网上将其格式化,方便阅读和修改
  3. 将XML中需要替换的内容使用EL表达式代替,如:${name}。PS:可以在创建模板时直接使用EL表达式,但是注意在转换成XML的时候可能会存在某些意外,如果不熟悉使用。
  4. 业务需要多个报名单,每份报名单格式都是一样的,所以在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>

        ...... 此处省略部分内容

        
发布评论

评论列表 (0)

  1. 暂无评论