我写了一个程序来创建带有彩色单元格的docx表。因为每个单元格一个一个地着色会吸收很多行代码,所以我考虑将其放入一个函数中,但我似乎无法使其正常工作。
这是如何为它们着色而不循环的方法:
shading_elm_1 = parse_xml(r'<w:shd {} w:fill="30d1ff"/>'.format(nsdecls('w')))
table.rows[0].cells[0]._tc.get_or_add_tcPr().append(shading_elm_1)
shading_elm_2 = parse_xml(r'<w:shd {} w:fill="30d1ff"/>'.format(nsdecls('w')))
table.rows[0].cells[1]._tc.get_or_add_tcPr().append(shading_elm_2)
shading_elm_3 = parse_xml(r'<w:shd {} w:fill="30d1ff"/>'.format(nsdecls('w')))
table.rows[0].cells[2]._tc.get_or_add_tcPr().append(shading_elm_3)
shading_elm_4 = parse_xml(r'<w:shd {} w:fill="30d1ff"/>'.format(nsdecls('w')))
table.rows[0].cells[3]._tc.get_or_add_tcPr().append(shading_elm_4)
shading_elm_5 = parse_xml(r'<w:shd {} w:fill="30d1ff"/>'.format(nsdecls('w')))
table.rows[0].cells[4]._tc.get_or_add_tcPr().append(shading_elm_5)
这是我尝试过的功能
def colorCells(self, table, amount, color):
self.__amount = amount
self.__color = "r'<w:shd {} w:fill=" + '"' + farbe + "\"/>'.format(nsdecls('w'))"
for i in range(0, self.__amount):
shading_elm_1 = parse_xml(self.__color)
self.rows[0].cells[i]._tc.get_or_add_tcPr().append(shading_elm_1)
如您所见,我想将要上色的单元格数量和颜色代码本身交给功能 这就是我尝试称呼它的方式:self.colorCells(table,5,“ 30d1ff”)
错误消息即时获取:
lxml.etree.XMLSyntaxError:预计开始标记,找不到“ <”,第1行,第1列