Python XlsxWriter 条件格式多个单元格以单个单元格中的值为条件
Python XlsxWriter conditional format several cells conditioned on the value in a single cell
如果第一列中的值大于 7,我想突出显示 table 的整行(不包括索引)。我目前可以使用以下代码突出显示第一个单元格:
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
为了弄清楚如何在 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})
输出:
请注意,行的 absolute positioning of the column in $B2
so that it stays fixed over the conditional formatting range while the relative 位置允许更改。
如果第一列中的值大于 7,我想突出显示 table 的整行(不包括索引)。我目前可以使用以下代码突出显示第一个单元格:
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
为了弄清楚如何在 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})
输出:
请注意,行的 absolute positioning of the column in $B2
so that it stays fixed over the conditional formatting range while the relative 位置允许更改。