我有一个Excel工作表,其中工作表的列数不同,我想根据最后一列的值有条件地设置每张工作表的格式,如果该列包含True,我希望该行用绿色填充。
我
试图遵循openpyxl文档,但没有出现任何错误,但也没有得到想要的结果。
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.styles import PatternFill, colors
from openpyxl.formatting.rule import ColorScaleRule, CellIsRule, FormulaRule
from openpyxl.formatting import Rule
# Apply conditional formmatting to each sheet
wb = load_workbook(excel_file)
red_fill = PatternFill(bgColor="FFC7CE")
dxf = DifferentialStyle(fill=red_fill)
r = Rule(type="expression", dxf=dxf, stopIfTrue=True)
for sheet in wb.worksheets:
for row in sheet.iter_rows(min_row=2, max_col=sheet.max_column, max_row=sheet.max_row):
r.formula = [get_column_letter(sheet.max_column) +'2="TRUE"']
cell_range = 'A2:' + get_column_letter(sheet.max_column) + str(sheet.max_row)
sheet.conditional_formatting.add(cell_range, r)