OpenPyXL Pythonでエクセル操作 – 文字の色設定

OpenPyXL

OpenPyXLを使って、文字の色の取得と変更を行います。

import openpyxl

# ワークブックを開く
wb = openpyxl.Workbook()

# アクティブシートを取得
sh = wb.active

# セルの取得
cell1 = sh.cell(row=1,column=1)
cell1.value = "A1"
cell2 = sh.cell(row=1,column=2)
cell2.value = "B1"

# 文字の色を取得
fontcolor = cell1.font.color
print(fontcolor)

# 文字の色を指定
cell2.font = openpyxl.styles.Font(color='FF0000')
print(cell2.font.color)

# ワークブック保存
wb.save('file.xlsx')

# ワークブックを閉じる
wb.close()

プログラムのコードを最初から見ていきます。

import openpyxl

openpyxlをインポートします。これをしないとopenpyxlのモジュールが使えません

# ワークブックを開く
wb = openpyxl.Workbook()

openpyxlモジュールの、Workbook()関数を使い、新規のエクセルファイルを作成します。

新規のエクセルファイル作成と同時にシート名が”Sheet”が自動で作成されます。

# アクティブシートを取得
sh = wb.active

アクティブのシートを取得します。このエクセルファイルには”Sheet”のみしか入っていないため、このシートのオブジェクトが入ります。

# セルの取得
cell1 = sh.cell(row=1,column=1)
cell1.value = "A1"
cell2 = sh.cell(row=1,column=2)
cell2.value = "B1"

sh.cell(row=1,column=1)でセルのオブジェクトを取得し、cell1とします。

cell1.value = “A1″で1行目のA列に”A1″という値を入れます。

同様に、1行目のB列に”B1″という値を入れます。

セルの値の読み書きについて詳しくは、下記記事を参照してください。

文字の色を取得します。

# 文字の色を取得
fontcolor = cell1.font.color
print(fontcolor)

cell1.font.colorで文字の色を取得します。取得した色情報をfontcolorへ代入し、print(fontcolor)で下記が出力します。

<openpyxl.styles.colors.Color object>
Parameters:
rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme'

色を何も指定していない黒文字の場合、rgb=Noneとなります。

# 文字の色を指定
cell2.font = openpyxl.styles.Font(color='FF0000')
print(cell2.font.color)

次に、色を変更します。

openpyxl.styles.Font(color=’FF0000′)とし、color=のところで色を指定します。

FF0000は赤色となり、print(cell2.font.color)で出力した結果が下記です。

<openpyxl.styles.colors.Color object>
Parameters:
rgb='00FF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'

何も色を指定していない場合はrgb=Noneでしたが、rgb=’00FF0000’へ変更されています。

色の指示方法は、indexedとthemeでも変更ができるようですが、環境に依存する部分があるため、使用は推奨されておらず、rgbで指定した方が良いです。

以上となります。

OpenPyXLの他の関数の使い方について知りたい場合は下記記事が非常に参考になります。

タイトルとURLをコピーしました