所以基本上我的想法很简单。我有一个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()
最有效的方法是什么?
感谢您提前回答
Jan
PS:OpenPyXL带有标签,因为我认为win32com使用与openpyxl相同的命令,如果我没记错的话,请删除标签...
答案 0 :(得分:0)
只要您在wb.Save()
之前插入,以下示例代码就应该起作用,请注意,我们使用了here中的函数:
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.')