Как извлечь точный цвет клеток с помощью Openpyxl - PullRequest
0 голосов
/ 30 марта 2020

У меня проблема с использованием {cell}.fill.start_color.index иногда код возврата цвета, иногда этого не происходит

df = openpyxl.load_workbook(
    'csv_file/demo.xlsx')
ws = df['Sheet1']
print(ws['A1'].fill.start_color.index)
print(ws['A2'].fill.start_color.index)
print(ws['A3'].fill.start_color.index)
print(ws['A4'].fill.start_color.index)
print(ws['A5'].fill.start_color.index)
print(ws['A6'].fill.start_color.index)
output
----------
FFFFFF00
9
FF60497A
1
9
FF00B0F0

enter image description here

Есть ли у вас способ извлечь цвет из указанной ячейки c? так как мне нужно использовать их цвет для генерации нового столбца

РЕДАКТИРОВАТЬ

Я добавил этот код

def convert_color_code(x):
    if isinstance(x, str):
        return x
    if isinstance(x, int):
        if x <= 64:
            return COLOR_INDEX[x]
        else:
            return x

enter image description here

output
-------
cell: start_color end_color
A1 :FFFFFF00 64
A2 :9 64
A3 :FF60497A 64
A4 :1 64
A5 :9 64
A6 :FF00B0F0 64
A7 :0 64
A8 :00000000 00000000
A1 :FFFFFF00 System Foreground
A2 :00FFFFFF System Foreground
A3 :FF60497A System Foreground
A4 :00FFFFFF System Foreground
A5 :00FFFFFF System Foreground
A6 :FF00B0F0 System Foreground
A7 :00000000 System Foreground
A8 :00000000 00000000

почему черный и темно-зеленый возвращают одно и то же значение?

...