Openpyxl:将背景颜色设置为行和列属性错误

Openpyxl: set background color to a row and column Attribute Error

看过这里的几个示例后,我尝试将背景颜色设置为整行和整列。我做了

 import openpyxl
 from openpyxl.styles import PatternFill
 wb = openpyxl.load_workbook(self.inputfile)
 ws = wb.active
 ws['A1'].fill = PatternFill(bgColor="FFC7CE", fill_type = "solid")`

如果我执行 `ws[1].fill =PatternFill(bgColor="FFC7CE", fill_type = "solid")

以上代码填充单个单元格(A1)。但是,如果我想填充整行 (1) 和整列 (A),我该如何前进。

迭代所有列,从 min_col=1 参数中指定的列开始。
在一行后结束,因为行参数 min_row=1max_row=1 相等。
参数 min_row/max_row 可以指向任何行,甚至可以指向外部数据。

  for rows in ws.iter_rows(min_row=1, max_row=1, min_col=1):
    for cell in rows:
      cell.fill = PatternFill(bgColor="FFC7CE", fill_type = "solid")

对于整列,使用:

iter_cols(min_col=None, max_col=None, min_row=None, max_row=None)

如果您只给出 min_* 个属性值,则最多使用 row/column 个。

测试 Python:3.4.2 - openpyxl:2.4.1

我尝试了接受的答案,但行背景总是黑色,所以我必须将 PatternFill 更改为以下内容。

  cell.fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type = "solid")

对接受的答案稍作修改(白色背景):

   for rows in sheet.iter_rows(min_row=1, max_row=40, min_col=1, max_col=40):
    for cell in rows:
        cell.fill = PatternFill(start_color='00FFFFFF', end_color='00FFFFFF', fill_type="solid")

这会在 sheet 从第 1 行第 1 列开始到第 40 行和第 40 列提供白色填充。