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

一、合并单元格

效果

在这里插入图片描述
在这里插入图片描述

1、制作表格模板

在这里插入图片描述

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

在这里插入图片描述

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

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

6、ftl处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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



<w:vMerge w:val=“restart”/> 这是合并开始的标签。

<w:vMerge/> 这是被合并的标签。



当一个单元格被添加了 <w:vMerge w:val=“restart”/> 标签时,此单元格开始向下合并。前提是下一个单元格必须有 <w:vMerge/> 这个标签。



如果每一个单元格都有<w:vMerge w:val=“restart”/> 标签,那么操作Word时这些单元格不可被选中编辑,里面会有内容,但是打印时内容出不来。



当一个单元格添加了<w:vMerge/>标签时,无论它上面的单元格是否有<w:vMerge w:val=“restart”/> ,它都会被上个单元格吞并。



只有第一行第一个单元格里面有<w:vMerge w:val=“restart”/> ,后面行的第一个单元格有<w:vMerge/> ,才会展现出合并的效果。



二、关于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)> 即可

猜你喜欢

转载自blog.csdn.net/weixin_43165220/article/details/119537190