Как получить цвет фона ячейки в python-docx? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь прочитать данные из таблицы MS Word, используя python-docx. Есть способ установить цвет фона ячейки таблицы:

tcPr = cell._tc.get_or_add_tcPr()
shd = OxmlElement("w:shd")
shd.set(qn("w:fill"), rgb2hex(*color))
tcPr.append(shd)

Моя задача противоположна, мне нужно получить существующий цвет. Я не разбираюсь в xml, и я попробовал это:

cell = table.cell(row, col)
tcPr = cell._tc.get_or_add_tcPr().get(qn('w:shd'))

Как бы то ни было, мне возвращается Нет для каждой ячейки чтения независимо от ее цвета.

1 Ответ

1 голос
/ 13 октября 2019

Как предложено scanny , я использовал синтаксический анализ cell._tc.xml:

pattern = re.compile('w:fill=\"(\S*)\"')
match = pattern.search(cell._tc.xml)
result = match.group(1)

Если есть данные о цвете, он возвращает либо «авто», либо шестнадцатеричный код цвета фона, которыйможно преобразовать в RGB.

...