在这里看了几个例子,我试图将背景颜色设置为整个行和列。我做完了
`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),我该如何前进。
答案 0 :(得分:6)
迭代所有列,从给定的min_col=1
参数列开始
在一行之后结束,因为这里给定的参数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")
使用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")