opentbs如何更新标签?

时间:2013-09-26 04:01:50

标签: php ms-word opentbs

我需要输出一个表格,每个单元格的背景颜色都不同,具体取决于值。范围可能是0-25的红色背景,26-50橙色,51-75黄色和76-100绿色。

我的模板是一个word文档,如果我将单元格颜色设置为红色,然后查看xml,我会得到以下内容:

<w:tcPr>
  <w:tcW w:w="3081" w:type="dxa"/>
  <w:shd w:val="clear" w:fill="FF0000" w:color="auto"/>
</w:tcPr>
<w:p w:rsidR="0092058F" w:rsidRDefault="0057272B" w:rsidP="007D2CAD">
  <w:pPr>
    <w:jc w:val="right"/>
  </w:pPr>
  <w:r w:rsidRPr="0057272B">
    <w:t>[onload;att=w:shd#w:fill=[x.bgcolour]][x.m1]</w:t>
  </w:r>
</w:p>

正如您所看到的,我正在尝试更新w的值:填充x.bgcolour中存储的值。在合并时,我收到了一份损坏的文件。当我查看合并的xml时,它看起来像这样(x.bgcolour的值是00ff30)。

<w:shd w:val="clear" w:color="auto" w:fill="FF0000" w:fill=00ff30=""/>

原始填充颜色仍然存在(FF0000),新值超出引号。我觉得我已接近正确。我需要做些什么来完成这项工作?谢谢!

1 个答案:

答案 0 :(得分:2)

根据您的代码段,[onload] TBS字段将移至实体w:shd和名为w:fill=[x.bgcolour]的属性。这是错的。

您需要的只是移动TBS字段[x.bgcolour]。

可以通过以下方式完成:

<w:tcPr>
  <w:tcW w:w="3081" w:type="dxa"/>
  <w:shd w:val="clear" w:fill="FF0000" w:color="auto"/>
</w:tcPr>
<w:p w:rsidR="0092058F" w:rsidRDefault="0057272B" w:rsidP="007D2CAD">
  <w:pPr>
    <w:jc w:val="right"/>
  </w:pPr>
  <w:r w:rsidRPr="0057272B">
    <w:t>[x.bgcolour;att=w:shd#w:fill][x.m1]</w:t>
  </w:r>
</w:p>