我在docx文件中使用以下行的表:
[b.num;block=w:tr]
[b.name]
在PHP中,我使用$TBS->MergeBlock('b', $data_1);
来添加$data_1
数组中的内容。
问题是,如何动态控制每行中的文本颜色,例如:如果名称是“John”,则将其标记为红色,否则使用蓝色?
答案 0 :(得分:1)
我可以提出两种解决方案。
1)使用条件部分
为此,每种可能性使用一行:
[b.num;block=w:tr;when '[b.name]'='John'] (red) [b.name]
[b.num;block=w:tr;default] (blue) [b.name]
2)使用参数“att”
更改颜色在行的细胞中,当您将颜色应用于文本的部分时,内部XML就是这样的:
<w:p>
<w:r>
<w:rPr>
<w:color w:val="FF0000"/>
</w:rPr>
<w:t>this text is red</w:t>
</w:r>
</w:p>
因此,您可以通过在模板中应用任何颜色来准备单元格,然后使用带参数“att”的字段来转换颜色的值。
[b.num;block=w:tr]
[b.name]
[b.name;att=w:color#w:val;if [val]='John';then 'FF0000';else '548DD4']