携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第十九天,点击查看活动详情
上一章列举了一部分常用的标签值,还有部分标签不常用,也可以列举一下。
- 区块对标签
区块对由前后两个标签组成,开始标签以?标识,结束标签以/标识:{{?sections}}{{/sections}}。如果想要word中的部分内容实现有内容就显示,无内容就隐藏效果,就可以用到这个标签
使用示例:
Map map = new HashMap();
map.put("start", "startTime");
map.put("end", "endTime");
//此时如果map为空,则该区块会隐藏
Map map1 = new HashMap();
map1.put("sections", map);
复杂表格使用示例:
由于正常使用的模板循环行上有两行数据,而首列只有一行,列表标签无法正常放在上一行表格上
当标签放在序号位置上时,发现循环的是测试两行下方的内容,尝试将序号该表格分为两行,将中间一行隐藏掉,实现效果如下:
{{details}} 存放在序号下面一行,且页面上看不到上方的横线 实现步骤如下是,使用工具WPS:
- 选择开始,将填充色改为无填充色
- 选择插入,点击表格,选中绘制表格,选中想要变透明的那一行,进行绘制,会发现那一行变透明了
然后将{{details}} 标签放在序号下方,再运行文件之后,发现正常循环
代码使用示例:
OtherParam param = new OtherParam();
param.setTitle("title");
...
List<Detail> detailsList = new ArrayList(){{
add("1","2","3"...);
add("1","2","3"...);
...
}};
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder().bind("details", policy).build();
//如果是普通数据(没有跟Configure绑定)只能render一次,多次只会识别最后一个render的内容
//而列表数据Configure绑定后,可再render其他非循环数据
XWPFTemplate template = XWPFTemplate.compile(resource, config).render(
new HashMap<String, Object>() {{
put("details", detailsList);
}}
).render(param);