我有一个简单的word文档,其中一个表包含一行两列(换句话说,两个单元格)。第一个单元格的背景色为红色,另一个单元格为黑色。我想使用pythondocx将两者都改为白色。在
我试过几种方法,但下面是最有希望的方法。它修改底层xml。在import docx
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
# Set a cell background (shading) color to RGB D9D9D9.
shading_elm = parse_xml(r''.format(nsdecls('w')))
doc = docx.Document('assets/tabletest.docx')
table = doc.tables[0]
cell = table.cell(0,0)
testchild = cell._tc.getchildren()[0]
testchild.append(shading_elm)
doc.save('assets/tabletest2.docx')
上面的代码将第一个单元格修改为白色,而将第二个单元格保留为黑色。我试图通过在doc.save之前添加以下代码来修改第二个单元格:
^{pr2}$
问题是现在,第一个单元格仍然是红色的,第二个单元格现在是白色的。它似乎只修改了最后一个单元。在
我确实遗漏了一些东西,但我不是xml专家。有人有主意吗?在