联系
我们

工作日 9:00-18:00

13632615190

NVeloDocx命令的语法特殊要求

NVeloDocx是基于NVelocity和OpenXml的Word模版引擎,所以遵循NVelocity的语法,但是要求上更为严格。

这里主要是针对foreach和if的特殊要求,两者要求相同,下面以foreach为例进行说明。


foreach:分2种情况,

1、Word“段落”中的foreach,那么此时#foreach ... #end必须在同一个段落中。

如下是正确的:

image.png

如下是错误的:

因为#foreach和#end不在同一个段落。

image.png

导出时将会报这样的错误:“上面我们一共列举了${child.Count}个联系人,分别是:#foreach($item in $child) ${child.GetValue($item,"__Name__")} ”中的命令“#foreach”找不到匹配的#end


2、段落循环。

这种#foreach必须在要循环输出的Word段落的前面,单独成一个Word段落;#end在要循环输出的Word段落的后面,单独成一个段落。比如我们想按下面方式输入客户联系人列表:

image.png


则我们可以这么配置:此时#foreach和#end分别在要输出的段落前后。

image.png


#if...#end同样。要么都在同一个段落中,要么在Word段落的前后,且单独成为一个段落。