Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据值更改Excel单元格颜色?_Python_Excel_Win32com - Fatal编程技术网

Python 如何根据值更改Excel单元格颜色?

Python 如何根据值更改Excel单元格颜色?,python,excel,win32com,Python,Excel,Win32com,所以基本上我的想法很简单。我有一个excel文件,其中有一列(D) 我想检查每一行的列长度(除了第一行,这是一个名称)。如果值大于0,则单元格应为绿色;如果值小于0,则单元格应为红色;如果值小于0,则单元格应为灰色。我知道这可能是一个循环,但我不知道如何,我找不到任何好的信息如何处理这个 所以我已经知道了: import win32com.client as win32 import pythoncom pythoncom.CoInitialize() #Excel

所以基本上我的想法很简单。我有一个excel文件,其中有一列(D) 我想检查每一行的列长度(除了第一行,这是一个名称)。如果值大于0,则单元格应为绿色;如果值小于0,则单元格应为红色;如果值小于0,则单元格应为灰色。我知道这可能是一个循环,但我不知道如何,我找不到任何好的信息如何处理这个

所以我已经知道了:

import win32com.client as win32
import pythoncom

    pythoncom.CoInitialize()

    #Excel
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    wb = excel.Workbooks.Open('C:\\Users\\Gebruiker\\Downloads\\RELEARNING\\output.xlsx')
    ws = wb.Worksheets("Sheet1")
    ws.Cells(1,4).Value = "Coin Toss Results"  #This is Row D
    ws.Columns.AutoFit()
    wb.Save()
    excel.Application.Quit() 
最有效的方法是什么

谢谢你提前回复

一月


PS:OpenPyXL被标记,因为我认为win32com使用与OpenPyXL相同的命令,如果我没有弄错的话,否则请删除标记…

以下是示例代码,只要您在
wb.Save()
之前插入,该代码就可以工作,请注意,我们使用了以下函数:

对于范围(2,5)中的i:#假设存在单元格(D2)=1,单元格(D3)=0,单元格(D4)=-1
cell=ws.Cells(i,4)
如果单元格值<0:
cell.Interior.Color=RGB点((255,0,0))#红色
elif单元格。值==0:
cell.Interior.Color=RGB点((2112121121))#灰色
elif单元格值>0:
cell.Interior.Color=RGB点((0255,0))#绿色
其他:
打印('错误')
for i in range(2,5):   # Assuming there is Cell(D2)=1, Cell(D3)=0, Cell(D4)=-1
    cell = ws.Cells(i,4)
    if cell.Value < 0:
        cell.Interior.Color = rgbToInt((255,0,0)) # red
    elif cell.Value == 0:
        cell.Interior.Color = rgbToInt((211,211,211)) # grey
    elif cell.Value > 0:
        cell.Interior.Color = rgbToInt((0,255,0)) # green
    else:
        print('Error.')