Как определить функцию, которая добавляет цвет в ячейки моей таблицы? - PullRequest
0 голосов
/ 24 апреля 2019

Я написал программу, которая создает таблицы 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 (таблица, 5, "30d1ff")

сообщение об ошибке, которое я получаю:

lxml.etree.XMLSyntaxError: начальный тег ожидается, '<' не найден, строка1, столбец 1 </p>

...