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

时间:2017-02-17 03:28:56

标签: 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")`

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

,我会收到属性错误

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

3 个答案:

答案 0 :(得分:6)

迭代所有列,从给定的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")

使用eniere Column

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

如果您只提供min_*个属性值,则使用最大行/列。

使用Python测试:3.4.2 - openpyxl:2.4.1

答案 1 :(得分:1)

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

   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")

从第1行第1列到第40行和第40列,这将在工作表上提供白色填充。

答案 2 :(得分:0)

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

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