get the fill color of a cell in an Excel file

There is a file that consists of a million lines, it needs to be parsed. which I actually did, but there is still a task to check the fill color in this cell.

# -*- coding: utf-8 -*-
from openpyxl import load_workbook


wb_form = load_workbook("1.xlsx", data_only=True)
sheet_form = wb_form["1"]
wb = sheet_form["B2"].value
f = open("1.txt", "w+")
tmp = 0

for iter, row in enumerate(sheet_form.values):
    if iter == 0:
        continue
    for i in row:
         if i == None:
             continue
         print(i)




f.close()

I can't find a solution. how do I check the cell color at the time of the iteration?

Author: MaxU, 2019-08-29

1 answers

Example:

In [73]: from openpyxl import load_workbook
    ...:
    ...: wb = load_workbook(r"C:\Temp\1.xlsx")
    ...: ws = wb["Sheet1"]
    ...:
    ...: for row in ws.iter_rows(min_row=1, max_col=3, max_row=5):
    ...:     for cell in row:
    ...:         print(f"coordinate: {cell.coordinate}\tvalue: {cell.value}\tcolor: {cell.fill.start_color.index}")
    ...:
coordinate: A1  value: a        color: 00000000
coordinate: B1  value: b        color: 00000000
coordinate: C1  value: c        color: 00000000
coordinate: A2  value: 1        color: 00000000
coordinate: B2  value: 2        color: FFC6EFCE
coordinate: C2  value: 3        color: 00000000
coordinate: A3  value: 4        color: 00000000
coordinate: B3  value: 5        color: FFFFC7CE
coordinate: C3  value: 6        color: 00000000
coordinate: A4  value: 7        color: 00000000
coordinate: B4  value: 8        color: FFFFEB9C
coordinate: C4  value: 9        color: 00000000
coordinate: A5  value: 10       color: 00000000
coordinate: B5  value: 11       color: 5
coordinate: C5  value: 12       color: 00000000
 2
Author: MaxU, 2019-08-29 13:59:55