freemarker合并单元格,if、else标签的使用,null、空字符串处理

一、合并单元格

效果

freemarker合并单元格,if、else标签的使用,null、空字符串处理_第1张图片
freemarker合并单元格,if、else标签的使用,null、空字符串处理_第2张图片

1、制作表格模板

freemarker合并单元格,if、else标签的使用,null、空字符串处理_第3张图片

3、将制作好的word另存为xml文件

freemarker合并单元格,if、else标签的使用,null、空字符串处理_第4张图片

4、将xml文件进行格式化,然后直接修改后缀名,将xml格式改为ftl格式

5、关于数据,将要导出的数据处理好

6、ftl处理

freemarker合并单元格,if、else标签的使用,null、空字符串处理_第5张图片
freemarker合并单元格,if、else标签的使用,null、空字符串处理_第6张图片
freemarker合并单元格,if、else标签的使用,null、空字符串处理_第7张图片
freemarker合并单元格,if、else标签的使用,null、空字符串处理_第8张图片
freemarker合并单元格,if、else标签的使用,null、空字符串处理_第9张图片

在循环的数据行中,每一个 tr 里面会包含对应的 tc(单元格) ,找到对应的需要合并的单元格,在 下面添加逻辑判断,一定是在下面。



这是合并开始的标签。
这是被合并的标签。



当一个单元格被添加了 标签时,此单元格开始向下合并。前提是下一个单元格必须有 这个标签。



如果每一个单元格都有 标签,那么操作Word时这些单元格不可被选中编辑,里面会有内容,但是打印时内容出不来。



当一个单元格添加了标签时,无论它上面的单元格是否有 ,它都会被上个单元格吞并。



只有第一行第一个单元格里面有 ,后面行的第一个单元格有 ,才会展现出合并的效果。



二、关于if、else标签的使用,判断是否为空

1、判断list的size是否大于0

<#if (list?size > 0)>
#if>

2、处理null(如果不对null处理的话,会报错)

<#--   字符串   -->
<w:t>${str!""}w:t>

<#--   int类型   -->
<w:t>${sort!0}w:t>

3、判断字符串不为null和不为空字符串

<w:t><#if str?default("")?trim?length gt 1>${str}#if>w:t>

4、其他

判断多个条件,标签里可以用 && 和 ||

布尔值直接 <#if (flag)> 即可

你可能感兴趣的:(freemarker,freemarker)