Freemarker合并学习笔记
标签含义:
<w:tr >表格加一行
<w:tc> 表格加一列
<w:tcPr> 单元格属性,由X行Y列决定在这一行中新加的一列就是一个单元格
<w:tcW w:w="2490" w:type="dxa" /> 单元格宽
<w:p >单元格中加一段落
<w:pPr>段落属性
<w:jc w:val="center"/>居中
合并多行
<w:vMerge w:val="restart"/>:
开始合并标签
理解:合并多行的时候,把后面每个tr(行)
里面需要向上合并的tc(列)
加上一个结束合并标签即可
位置:
<w:vMerge/>:
结束合并标签
使用场景:跟开始标签不是一一对应的,一个开始合并标签可以有多个结束合并标签,在需要合并列的相应位置加上结束合并标签
位置:
合并多列
可以理解为html中的colspan
使用方法:<w:gridSpan w:val="4"/>
val里面就是合并的列数
位置:
动态插入值
差值语法:${变量名}
List集合
// 数据结构:
person = [
{
id: "1001",
name: "张三"
},
{
id: "1002",
name: "李四"
}
]
// 模板获取 p_index:循环时的索引
<#list person as p>
${p_index}--${p.id}--${p.name}
</#list>
// 结果:
1--1001--张三
2--1002--李四
Map集合
// 数据结构
map = {
"key1": "value1",
"key2": "value2"
}
// 模板获取
// 方法一:
${map.key1}
// 方法二:
${map["key1"]}
// 循环获取
<#list map?keys as k>
${map[k]}
</#list>
// 结果:
value1
value2
在模板中定义变量并赋值
<#assign name="${name}" />
${name}
if语句
<#list ["星期一", "星期二", "星期三"] as n>
<#if n != "星期一">
${n}
</#if>
</#list>
结果:
星期二
星期三
else语句:
<#list ["星期一", "星期二", "星期五"] as n>
<#if n_index == 1>
黑色${n}
<#else>
黄色${n}
</#if>
</#list>
结果:
黑色星期一
黄色星期二
黄色星期五
时间格式化:
// 2021-12-17
${time?date}
// 2021-12-17 10:06:03
${time?datetime}
// 10:06:12
${time?time}
处理null
demo = null;
${demo!} // 结果:${demo!}
${demo!"嘿嘿"} // 结果:嘿嘿
宏
<#macro table u>
${u}
</#macro>
<@table u="这是普通宏" />
// 结果:
这是普通宏
<#macro table u>
${u}
<#nested/>
</#macro>
<@table u=8 >我是扩展的宏</@table>
// 结果:
8
我是扩展的宏
参考:https://blog.csdn.net/gwd1154978352/article/details/76087436