Fill cells with colors using openpyxl?

Ahmed Rashad picture Ahmed Rashad · May 27, 2015 · Viewed 82.9k times · Source

I am currently using openpyxl v2.2.2 for Python 2.7 and i wanted to set colors to cells. I have used the following imports

import openpyxl,
from openpyxl import Workbook
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell

and the following is the code I tried using:

wb = openpyxl.Workbook()
ws = wb.active

redFill = PatternFill(start_color='FFFF0000',
                   end_color='FFFF0000',
                   fill_type='solid')

ws['A1'].style = redFill

but I get the following error:

Traceback (most recent call last)
  self.font = value.font.copy()
AttributeError: 'PatternFill' object has no attribute 'font'

Any idea on how to set cell A1 (or any other cells) with colors using openpyxl?

Answer

Charlie Clark picture Charlie Clark · May 27, 2015

I believe the issue is that you're trying to assign a fill object to a style.

ws['A1'].fill = redFill should work fine.