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),我该如何前进。

原文由 Zedak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 750
2 个回答

迭代所有列,从 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_* 属性值,则使用最大行/列。

使用 Python:3.4.2 测试 - openpyxl:2.4.1

原文由 stovfl 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

    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 列提供白色填充。

原文由 Steven Barnard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题