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

Php OpenTBS:如何动态更改表中行的颜色,php,colors,docx,opentbs,Php,Colors,Docx,Opentbs,我在docx文件中使用具有以下行的表: [b.num;block=w:tr] [b.name] 在PHP中,我使用$TBS->MergeBlock('b',$data_1)添加$data\u 1数组中的内容 问题是,如何动态控制每行中的文本颜色,例如,如果名称为“John”,则将其标记为红色,否则使用蓝色?我可以建议两种解决方案 1) 使用条件节 为此,每种可能性使用一行: [b.num;block=w:tr;when '[b.name]'='John'] (red) [b.name] [

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

[b.num;block=w:tr]
[b.name]
在PHP中,我使用
$TBS->MergeBlock('b',$data_1)
添加
$data\u 1
数组中的内容


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

我可以建议两种解决方案

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>

尝试使用第一种方法,但不起作用。(红色)和(蓝色)标签应该按照您指定的方式书写,还是必须用这些颜色标记文本,而不使用标签?谢谢你的信息!文本必须用那些颜色标记。但您也可以将文本留给测试。在第一种解决方案中,它们是块中的两个部分。TBS将选择其中一个部分进行显示。
[b.num;block=w:tr]
[b.name]
[b.name;att=w:color#w:val;if [val]='John';then 'FF0000';else '548DD4']