4

私は他のモジュールセットの使用を避けています。

私がやろうとしているのは、pywin32 ライブラリを使用して Excel でセルの色を設定することです。これまでのところ、セルの色を取得する方法を見つけました:

print xl.ActiveSheet.Cells(row, column).interior.color

同様の方法で割り当てるだけで簡単に設定できます。

xl.ActiveSheet.Cells(row, column).interior.color = 0 #black

私の質問は、セルの色を RGB で設定する方法です。

system.drawingOLE への ColorTranslator というものが必要なのですが、どうやらそれらしいのでアクセス方法がわかりません.NEThttp://msdn.microsoft.com/en-us/library/system.drawing.colortranslator.toole.aspx

4

2 に答える 2

13

interior.color は、BGR に 16 進値を想定しています。RGB 形式で指定する場合は、以下のコードを使用できます。

def rgb_to_hex(rgb):
    '''
    ws.Cells(1, i).Interior.color uses bgr in hex

    '''
    bgr = (rgb[2], rgb[1], rgb[0])
    strValue = '%02x%02x%02x' % bgr
    # print(strValue)
    iValue = int(strValue, 16)
    return iValue

ws.Cells(1, 1).Interior.color = rgb_to_hex((218, 36, 238))
于 2012-07-12T04:47:47.097 に答える
10

Excel では、式 Red + (Green * 256) + (Blue * 256 * 256) によって計算された整数を使用できます。

def rgbToInt(rgb):
    colorInt = rgb[0] + (rgb[1] * 256) + (rgb[2] * 256 * 256)
    return colorInt

ws.Cells(row,col).Font.Color = rgbToInt((255,255,128))
于 2014-01-24T17:04:59.177 に答える