Я пытаюсь прочитать файл «.xlsx», состоящий из таблицы, в которой есть несколько ячеек с цветовой заливкой (цвет фона ячейки).
Используя «Python 3.4» и «openpyxl 2.5.12», я попытался создать фиктивную заливку желтой ячейки на «a1» и сохранил файл, открывая файл «xlsx», я вижу, что он желтыйподсвечен.Однако, когда я перебираю ячейки электронной таблицы с условием:
if cell.fill == yellowFill:
print(cell.value)
, я получаю только значение «a1», зная, что есть другие ячейки с такой же желтой заливкой.
Я даже пытался перейти в цветовую палитру Excel, чтобы сравнить цветовой код заполнения фиктивной ячейки «a1» и других выделенных желтым цветом ячеек, это было то же самое (красный: 255, зеленый: 255, синий: 0) !!!
from openpyxl import load_workbook
from openpyxl.styles import PatternFill, colors, Fill
p = 'some_directory\example.xlsx'
wb = load_workbook(p)
ws = wb['Sheet1']
yellowFill = PatternFill(start_color = colors.YELLOW,
end_color = colors.YELLOW,
fill_type='solid')
ws['a1'].fill = yellowFill
wb.save(p)
for row in ws.rows:
for cell in row:
if cell.fill == yellowFill:
print(cell.value)
Есть ли способ распечатать только значения ячеек с желтой заливкой?
Обновление: я попытался посмотреть на разницу между фиктивной подсвеченной ячейкойи первоначально выделенная ячейка:
print(ws['a1'].value)
print(ws['a1'].fill)
print()
print(ws['e5'].value)
print(ws['e5'].fill)
И получил следующий вывод:
>>>
1
<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType='solid', fgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='00FFFF00', theme=None,
bgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='00FFFF00', theme=None
4
<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType='solid', fgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='FFFFFF00', theme=None,
bgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='indexed', indexed=64, tint=0.0, rgb=None, theme=None
>>>
Большое спасибо заранее!