opentbs如何更新标签?

问题描述:

我需要输出一个表格,每个单元格将根据值具有不同的背景颜色。范围可能是0-25这样的东西会有红色背景,26-50橙色,51-75黄色和76-100绿色。opentbs如何更新标签?

我的模板是一个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),并且新值不在引号内。我觉得我已经接近正确了。我需要做些什么来完成这项工作?谢谢!

根据您的代码段,[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> 

它可以像这样做