向Cell OpenPyXL添加背景颜色

问题描述 投票:3回答:5

我试图让它成为我的代码在“存在”时在单元格上发出绿色背景的地方,如果它是“缺席”则在单元格上发出红色背景。这是我的代码。

ws1.cell(column=1, row=t, value="%s" % blue_student_list)
if (student_check(i)):
    ws1.cell(column=2, row=t, value="%s" % "Present")
else:
    ws1.cell(column=2, row=t, value="%s" % "Absent")

这段代码完美无缺,我只是想知道如何添加单元格后面的背景颜色。

python excel openpyxl
5个回答
5
投票

来自文档

    from openpyxl.styles import PatternFill

    sheet['A1'].fill = PatternFill(bgColor="FFC7CE", fill_type = "solid")

希望这可以帮助。


8
投票

这里openpyxl 2.5.3,上面的代码不起作用。

尝试后,下面的代码工作:

from openpyxl.styles import PatternFill
sheet['A1'].fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type = "solid")

2
投票

正如@Charlie Clark(openpyxl的合着者)所说,条件格式化可能是更好的方法。

如果你想改变背景颜色,从更新的版本,关键字bgcolor似乎不起作用(在我的情况下,它的颜色最终为黑色)。

相反,你可以使用start_colorfgColor。例如,两种解决方案都有效:

from openpyxl.styles import PatternFill
from openpyxl.styles.colors import YELLOW

sheet['A1'].fill = PatternFill(start_color="FFC7CE", fill_type = "solid")
sheet['A1'].fill = PatternFill(fgColor=YELLOW, fill_type = "solid")

0
投票

请参阅openpyxl文档中的Conditional Formatting


0
投票
from openpyxl.styles import PatternFill
sheet['A1'].fill = PatternFill(start_color="FFC7CE", fill_type = "solid")

它会工作。

© www.soinside.com 2019 - 2024. All rights reserved.