OpenTBS:如何动态更改表中行的颜色

时间:2013-09-19 18:25:13

标签: php colors docx opentbs

我在docx文件中使用以下行的表:

[b.num;block=w:tr]
[b.name]

在PHP中,我使用$TBS->MergeBlock('b', $data_1);来添加$data_1数组中的内容。

问题是,如何动态控制每行中的文本颜色,例如:如果名称是“John”,则将其标记为红色,否则使用蓝色?

1 个答案:

答案 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']