我需要根据相邻的单元格来调整背景色。
我的模板是一个word文档,我将单元格颜色设置为一些随机颜色,因此我感兴趣的xml如下所示:
<w:tc>
<w:tcPr>
<w:tcW w:w="5400" w:type="dxa"/>
<w:tcBorders>
<w:left w:val="single" w:sz="4" w:space="0" w:color="D9D9D9" w:themeColor="background1" w:themeShade="D9"/>
</w:tcBorders>
<w:shd w:val="clear" w:color="auto" w:fill="D9D9D9" w:themeFill="background1" w:themeFillShade="D9"/>
</w:tcPr>
<w:pPr><w:rPr><w:sz w:val="20"/><w:szCs w:val="20"/></w:rPr></w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="20"/><w:szCs w:val="20"/>
</w:rPr>
<w:t>[title.bg;att=w:shd#w:fill][title.quoteFOB]</w:t>
</w:r>重要的一点是:
执行合并的调用如下所示:
$TBS->MergeField('title', array('custName' => $custName,
'compName' => $compName, 'custAddress1' => $custAddr1,
'custAddress2' => $custAddr2, 'quoteNum' => $quoteNum,
'quoteRev' => $quoteRev, 'quoteForm' => $quoteForm,
'quoteExpDate' => $quoteExp, quoteTerms' => $quoteTerm,
'quoteFOB' => $quoteFob, bg'=>'00FF00'));这是包含多个单元格更新的多个合并块之一,所有这些似乎都按预期工作。除了细胞颜色以外,一切都变了。
我尝试了许多可能导致这个问题的事情,比如:禁用除一个合并之外的所有合并,重新排列字段的顺序,以及对许多堆栈溢出项进行读取。都不起作用。
我以为我是个白痴,我可以通过看代码就知道这一点。并通过代码追踪。我发现,在Show()调用TBS->Source之前,就像预期的那样。所有合并都发生了,w:fill值在修改后的XML中被正确替换。但当我打电话的时候
$TBS->Show(OPENTBS_DOWNLOAD, "$fileName.docx") and
$TBS->Show(OPENTBS_STRING);输出docx文件不包含-w:fill更改。它之前和之后的一切,但都没有改变。现在我又开始认为我是个白痴,我做错了什么。
你知道我做错了什么吗?,请帮帮我。
发布于 2015-09-27 15:09:28
仅仅用‘Title.bg;att=w:shd#w:-w:fill’更改-w:fill属性是不够的。看来,只要-w:themeFill="background1“存在,MS-Word就忽略了这个属性。一旦我添加了'title.tf;att=w:shd#w:themeFill‘来将themeFill属性更改为空字符串,一切都按预期进行了工作。
我感到尴尬的是,我花了多长时间才退一步,第二次/第三次查看输出XML。我希望这能帮助其他人避免像我一样浪费时间。
https://stackoverflow.com/questions/32801155
复制相似问题