为什么xlsxwriter条件格式不起作用

问题描述

我的两个条件格式语句完全相同,但是,第一个有效而第二个无效。

我想知道为什么会发生这种情况以及如何解决

wb= writer.book
ws= writer.sheets['Sheet1']
ws.conditional_format('B2:L86',{'type':      '3_color_scale','min_value': 0,'mid_value':50,'max_value': 100,'min_color': 'CC0000','mid_color': 'white','max_color': '006600'}
                                    )

ws.conditional_format('M2:M86','max_value': 1100,'max_color': '006600'})
ws.set_column(0,13,10)
wb.close()
writer.save()

图片是:

enter image description here

解决方法

指定颜色的方式有问题,与之相关。它们应为'#CC0000''#006600'之类的HTML格式。

我的两个条件格式语句完全相同

不是。第二个没有中间范围值,最大值更高。解决该问题和颜色问题后,您应该会得到期望的输出:

import pandas as pd

df = pd.DataFrame({'Data': [10,20,30,15,45]})

writer = pd.ExcelWriter('pandas_conditional.xlsx',engine='xlsxwriter')

df.to_excel(writer,sheet_name='Sheet1')

ws = writer.sheets['Sheet1']
ws.conditional_format('B2:L86',{'type':      '3_color_scale','min_value': 0,'mid_value': 50,'max_value': 100,'min_color': '#CC0000','mid_color': 'white','max_color': '#006600'})

ws.conditional_format('M2:M86','mid_value': 550,'max_value': 1100,'max_color': '#006600'})
ws.set_column(0,13,10)
writer.save()

输出:

enter image description here