如何在Python中创建Excel的多个格式条件

0 投票
1 回答
2385 浏览
提问于 2025-04-16 10:47

这段代码理论上应该为F到AA列的每个单元格设置两种不同的格式条件,并且每种条件用不同的颜色来表示。但是,当我运行这个Python脚本时,Excel只接收到第一个条件的信息,第二个条件虽然在Excel中存在,但颜色填充却没有显示。有什么建议吗?

    formula1 = "=95" 
formula2 = "=100"
wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlBetween , formula1,formula2)             
#wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True            
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 8420607                       
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 
wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlGreaterEqual , formula2)             
#wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True          
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 10092543                       
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 

1 个回答

1

我找到了我的错误,我需要设置格式条件的索引:

            formula1 = "=95" 
            formula2 = "=100"
            wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlBetween , formula1,formula2)             
            #wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True            
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 8420607                       
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 
            wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlGreaterEqual , formula2)             
            #wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).Font.Bold = True          
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).Interior.Color = 10092543                       
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).StopIfTrue = False 

撰写回答