如何用XlsxWriter设置Excel列中最大值单元格的格式?
正确设置Excel列最大值单元格格式的方法
方案一:用top类型快速选中最大值
不用折腾百分比计算,直接指定选前1个值就行,不管数据有多少条,都能精准定位最大值:
format1 = workbook.add_format({'bg_color': '#FFC7CE'}) # 构建列范围:从AQ2到数据最后一行 range_str = f'AQ2:AQ{len(df)+1}' sheet1.conditional_format(range_str, { 'type': 'top', 'value': 1, # 选排名第1的单元格,也就是最大值 'format': format1 })
你之前尝试用1/len(df)当百分比是走弯路了,top类型的value填整数时,默认就是选对应个数的top值,填1刚好就是最大值,比百分比模式靠谱多了。
方案二:正确使用formula类型条件格式
公式得让每个单元格判断自己是不是等于列的最大值,你之前的公式只写了=max(...),相当于所有单元格都在跟同一个固定值比,自然整列都被格式化了。正确写法是:
format1 = workbook.add_format({'bg_color': '#FFC7CE'}) last_row = len(df) + 1 range_str = f'AQ2:AQ{last_row}' # AQ2是相对引用,会随单元格自动变化;$符号固定范围,避免公式偏移 sheet1.conditional_format(range_str, { 'type': 'formula', 'criteria': f'=AQ2=MAX(AQ$2:AQ${last_row})', 'format': format1 })
内容的提问来源于stack exchange,提问作者Gilhmm
相关产品推荐
相关产品推荐

