利用Freemarker生成doc文件(包含list循环,ifelse判断,合并单元格,嵌入表格单元格字数过多报错等)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013026207/article/details/53436713

1、利用office等软件打开doc文档,另存为word2003xml形式的文件。
2、修改xml中的需要动态生成的值,Freemarker变量为${data}格式的,修改完改成ftl后缀,复制到加载Freemarker的项目里即可
3、详细步骤请移步百度
一个稍微大点的doc文件转换为xml代码就有20000多行,怎么看!!!操作xml格式的文件推荐用xmlSpy,移步走你
重点之list循环
这里写图片描述

    <#list list as item>
        <w:t>${item.name}</w:t>
    </#list>

重点之list的第一个元素的判断

    <#list be.list13 as item>

    </#list>

在遍历list中,通过 item_index 可获取索引值,item_index==0即为第一个元素的索引值的判断
重点之ifelse判断
这里写图片描述

        <#if item_index == 0> 
            *内容*
        <#else>
            *内容*
        </#if>

重点之解决嵌入表格单元格字数过多报错
可以从后台传值的时候处理一下,<w:br />为换行符
重点之合并单元格
这可就厉害了,word哥
首先百度一大堆讲的<w:vmerge w:val="restart"/><w:vmerge/>
并没有好的实例
这里写图片描述
可见1号线实现了合并单元格
如何实现的呢:
思路:(利用list如何判断当前元素是第一个元素)第一个元素时用<w:vmerge w:val="restart"/>和要显示的内容
这里写图片描述
然后其他list元素要与之合并的用<w:vmerge/>
这里写图片描述
这里的内容可以为空,也可以自己设置

展开阅读全文

没有更多推荐了,返回首页