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

Zed*_*dak 1 python openpyxl

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

`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")`
Run Code Online (Sandbox Code Playgroud)

如果我收到属性错误 ws[1].fill =PatternFill(bgColor="FFC7CE", fill_type = "solid")

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

sto*_*vfl 6

迭代所有列,从指定给定min_col=1参数的Column开始。
在一行之后结束,此处为给定参数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")
Run Code Online (Sandbox Code Playgroud)

用于整个色谱柱

iter_cols(min_col=None, max_col=None, min_row=None, max_row=None)
Run Code Online (Sandbox Code Playgroud)

如果仅提供min_*属性值,则使用最大行数/列数。

使用Python:3.4.2测试-openpyxl:2.4.1


小智 5

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

   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")
Run Code Online (Sandbox Code Playgroud)

这将在纸张上提供白色填充,从第 1 行第 1 列开始,一直到第 40 行和第 40 列。