如何定义为表格单元格添加颜色的函数?

时间:2019-04-24 13:10:53

标签: python docx

我写了一个程序来创建带有彩色单元格的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列

0 个答案:

没有答案