Python win32com excel 删除内部颜色

Python win32com excel remove interior color

我想使用 python 和 win32com 删除 Excel 单元格的背景颜色。

如果我通过 val = ws.Cells(r,c).Interior.Color 询问一个空的未格式化单元格的背景颜色,我得到的 16777215 是白色的。如果我设置这个值,我会得到一个白色填充的单元格,而不是一个没有背景的单元格。使用 None 会产生黑色单元格。

去除单元格背景颜色的正确方法是什么?

使用-4142,也就是xlNone的对应值:

xlNone = -4142
ws.Cells(r,c).Interior.Color = xlNone

或者不用硬编码,使用 EnsureDispatch() 然后 client.constants.xlNone:

from win32com import client
xl=client.gencache.EnsureDispatch('Excel.Application')

ws.Cells(r,c).Interior.Color = client.constants.xlNone