0

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

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

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

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

4

1 回答 1

2

我可以提出两种解决方案。

1)使用条件部分

为此,为每种可能性使用一行:

[b.num;block=w:tr;when '[b.name]'='John'] (red)   [b.name]
[b.num;block=w:tr;default]                (blue)  [b.name]

2)使用参数“att”更改颜色

在该行的单元格中,当您将颜色应用于文本的部分 d 时,内部 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']
于 2013-09-19T21:36:58.510 回答