看过这里的几个示例后,我尝试将背景色设置为整个行和列。我已经做好了
`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),该如何前进。
迭代所有列,从指定给定min_col=1参数的Column开始。
在一行之后结束,此处为给定参数min_row=1且max_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 列。