Openpyxl:将背景颜色设置为行和列属性错误
Openpyxl: set background color to a row and column Attribute Error
看过这里的几个示例后,我尝试将背景颜色设置为整行和整列。我做了
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),我该如何前进。
迭代所有列,从 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")
对于整列,使用:
iter_cols(min_col=None, max_col=None, min_row=None, max_row=None)
如果您只给出 min_*
个属性值,则最多使用 row/column 个。
测试 Python:3.4.2 - openpyxl:2.4.1
我尝试了接受的答案,但行背景总是黑色,所以我必须将 PatternFill
更改为以下内容。
cell.fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type = "solid")
对接受的答案稍作修改(白色背景):
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")
这会在 sheet 从第 1 行第 1 列开始到第 40 行和第 40 列提供白色填充。
看过这里的几个示例后,我尝试将背景颜色设置为整行和整列。我做了
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),我该如何前进。
迭代所有列,从 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")
对于整列,使用:
iter_cols(min_col=None, max_col=None, min_row=None, max_row=None)
如果您只给出 min_*
个属性值,则最多使用 row/column 个。
测试 Python:3.4.2 - openpyxl:2.4.1
我尝试了接受的答案,但行背景总是黑色,所以我必须将 PatternFill
更改为以下内容。
cell.fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type = "solid")
对接受的答案稍作修改(白色背景):
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")
这会在 sheet 从第 1 行第 1 列开始到第 40 行和第 40 列提供白色填充。