如何使用Iron Python更改Excel文件中单元格的颜色?

时间:2015-05-18 12:19:57

标签: excel ironpython excel-interop

如何在Iron Python中更改Excel中的单元格背景颜色?

我尝试了以下代码:

def rgb_to_hex(rgb):
    strValue = '%02x%02x%02x' % rgb
    iValue = int(strValue, 16)
    return iValue

worksheet.range["H6"].interior.color = rgb_to_hex((255,255,0))

但是不起作用。它给出了HResult错误

2 个答案:

答案 0 :(得分:0)

我不熟悉Iron Python,但在C#中我做了以下几点:

Range colorCells = WS.get_Range(WS.Cells[row.Row, locCol], WS.Cells[row.Row, locCol + locWid]);
colorCells.Interior.Color = System.Drawing.ColorTranslator.ToOle(color);

我的猜测是Tim有正确的建议,您需要使用不同的方式将RGB转换为interior.color可以接受的颜色。

在我的C#中,它将颜色指定为int。

public static int ToOle(Color c);

答案 1 :(得分:0)

我已经设法通过两种方式输入颜色:

  1. 使用ColorIndex

https://docs.microsoft.com/en-us/office/vba/api/excel.colorindex

worksheet.Range["H6"].Interior.ColorIndex = 3

  1. 使用System.Drawing.ColorTranslator.ToOle(color),如建议的 Owen Ivory

clr.AddReference('System.Drawing')
from System.Drawing import Color, ColorTranslator
    
def rgbForExcel(r, g, b):
  return ColorTranslator.ToOle(Color.FromArgb(r, g, b))

worksheet.Range["H6"].Interior.Color = rgbForExcel(255, 50, 0)