我正在使用 openpyxl 我只想更改行中所有单元格的颜色字体(如果特定列的单元格不是 None 或 !=)。然而,经过多次尝试修改我的代码。结果会格式化所有单元格。
col_check = sheet.max_row
red_font = Font(color='FF0000')
for row in range(row+1,col_check):
if sheet.cell(row=row+1,column=col_check).value !='':
for col in range(col_check+1):
sheet.cell(row=row+1,column=col).font = red_font
尝试对我的代码进行不同的变体,但我仍然得到相同的结果。
对于
ws.iter_rows()
,默认情况下起始行是第一行 (1),起始列是第一列 (1)。结束行将为 ws.max_row
,结束列将为 ws.max_col
。 row[0].value
是当前行 A 列单元格中的值,row[1].value
是当前行 B 列单元格中的值...等等
使用以下代码;
对于每一行,如果 A 列中的单元格具有任何值,则该行中的所有单元格的字体都会更改为红色。
如果 A 列中的单元格为“无”,则单元格字体不会更改。
您可以更改
if row[0].value is not None
来指代您要检查的“特定列”是否为“无”。
from openpyxl import load_workbook
from openpyxl.styles import Font
wb = load_workbook('foo.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows():
if row[0].value is not None:
for cell in row:
cell.font = Font(color='FF0000')
wb.save('foo2.xlsx')