模板打印 - 循环处理
循环处理
循环处理用于对数组或对象中的数据进行重复渲染,通过定义循环起始和结束标记来识别需要重复的内容。下面介绍常见的几种情况。
遍历数组
1. 语法说明
- 使用标签
{d.array[i].属性}定义当前循环项,用{d.array[i+1].属性}指定下一项以标识循环区域。 - 循环时会自动以第一行(
[i]部分)作为模板进行重复;模板中只需写一次循环示例即可。
示例语法格式:
2. 示例:简单数组循环
数据
模板
结果
3. 示例:嵌套数组循环
适用于数组内嵌套数组的情况,可以无限层级嵌套。
数据
模板
结果
4. 示例:双向循环(高级功能,v4.8.0+)
双向循环可同时在行和列上进行迭代,适用于生成对比表等复杂布局(注:部分格式目前仅 DOCX、HTML、MD 模板官方支持)。
数据
模板
结果
5. 示例:访问循环迭代器值(v4.0.0+)
在循环中可以直接访问当前迭代的索引值,便于实现特殊格式需求。
模板示例
注:点号的数量用于表示不同层级的索引值(例如,
.i表示当前层,..i表示上一层),当前存在逆序问题,详情参阅官方说明。
遍历对象
1. 语法说明
- 对于对象中的属性,可以使用
.att获取属性名称,使用.val获取属性值。 - 迭代时,每次会遍历一个属性项。
示例语法格式:
2. 示例:对象属性遍历
数据
模板
结果
排序处理
利用排序功能可以在模板中直接对数组数据进行排序。
1. 语法说明:升序排序
- 在循环标签中使用属性作为排序依据,语法格式为:
- 若需要多重排序,可在方括号内以逗号分隔多个排序属性。
2. 示例:按数字属性排序
数据
模板
结果
3. 示例:多属性排序
数据
模板
结果
筛选处理
筛选处理用于根据特定条件过滤循环中的数据行。
1. 语法说明:数字筛选
- 在循环标签中增加条件(例如
age > 19),语法格式:
2. 示例:数 字筛选
数据
模板
结果
3. 语法说明:字符串筛选
- 使用单引号标明字符串条件,格式示例:
4. 示例:字符串筛选
数据
模板
结果
5. 语法说明:筛选前 N 项
- 可利用循环索引
i过滤出前 N 个元素,语法示例:
6. 示例:筛选前两项
数据
模板
结果
7. 语法说明:排除最后 N 项
- 通过负索引
i表示倒数项,例如:{d.array[i=-1].属性}获取最后一项{d.array[i, i!=-1].属性}排除最后一项
8. 示例:排除最后一项和最后两项
数据
模板
结果
去重处理
1. 语法说明
- 通过自定义迭代器,可根据某个属性的值获取唯一(不重复)的项。语法与普通循环类似,但会自动忽略重复的项。
示例格式:

