Python XlsxWriter条件格式以单个单元格中的值为条件的多个单元格

如果第一列中的值大于7,我想突出显示表的整个行(不包括索引)。我现在可以使用以下代码突出显示第一个单元格:

import pandas as pd

df = pd.DataFrame({'A':[6,4,8,2],'B':[.3,.2,.4,.1],'C': [12,13,14,15]})

with pd.ExcelWriter('temp.xlsx',engine='xlsxwriter') as writer:
    workbook = writer.book
    df.to_excel(writer)
    worksheet = workbook.worksheets()[0]

    format_yellow = workbook.add_format({'bg_color': '#FFFF00'})

    worksheet.conditional_format('B2:B5',{'type':     'cell','criteria': '>','value':    7,'format':   format_yellow})

这就是我得到的: get

这就是我想要的: want

askeric 回答:Python XlsxWriter条件格式以单个单元格中的值为条件的多个单元格

为了弄清楚如何在XlsxWriter中执行条件格式,您需要首先弄清楚如何在Excel中执行条件格式,然后将其应用于XlsxWriter。

在这种情况下,您可能需要一种formula条件格式,而不是cell类型,并且您需要扩展该格式适用的范围。像这样:

import pandas as pd

df = pd.DataFrame({'A': [6,4,8,2],'B': [.3,.2,.4,.1],'C': [12,13,14,15]})

with pd.ExcelWriter('temp.xlsx',engine='xlsxwriter') as writer:
    workbook = writer.book
    df.to_excel(writer)
    worksheet = workbook.worksheets()[0]

    format_yellow = workbook.add_format({'bg_color': '#FFFF00'})

    worksheet.conditional_format('B2:D5',{'type':     'formula','criteria': '=$B2>7','format':   format_yellow})

输出:

enter image description here

请注意$B2中列的absolute位置,以便在条件格式设置范围内保持固定,而行的relative位置允许对其进行更改。

本文链接:https://www.f2er.com/3043076.html

大家都在问