Python(openpyxl)で、Excelのセル・行・列に色付けする方法をまとめました。用途に合わせた書式設定をコード付きでご紹介します。
ぜひ、お試しください。
行列に色付けする
行に色付けする
以下のコードを実行すると、行に背景色をつけます。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
mylist = [3,5,6]
for list in mylist:
for row in ws.iter_rows():
for cell in row:
if cell.row == list:
cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行色付け.xlsx')
3行目、5~6行目の背景色に色をつけて、強調します。

列に色付けする
以下のコードを実行すると、列に着色します。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
mylist = [3,5,6]
for list in mylist:
for row in ws.iter_rows():
for cell in row:
if cell.row == list:
cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行色付け.xlsx')
C列、E~F列の背景色に色をつけます。

1行おきに色付け 3選
1行おきに色付け(リスト使用)
以下のコードを実行すると、一行おきに色付けして見やすくします。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
mylist = [2,4,6,8,10]
for list in mylist:
for row in ws.iter_rows():
for cell in row:
if cell.row == list:
cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test交互色付け.xlsx')
コード実行後
Excelシートを1行ごとに、しましまに色付けします。
[mylist = [2,4,6,8,10]] にて、色を付ける行を指定しています。

1行おきに色付け(変数使用)
以下のコードを実行すると、行の背景を交互に色付けします。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
Q = 0
for i in range(1,ws.max_row + 1):
for row in ws.iter_rows():
for cell in row:
if cell.row == Q:
cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
Q = Q + 2
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test交互色付け.xlsx')
コード実行後
シート内の行を交互に塗りつぶします。
変数 [Q] にて、偶数行を指定しています。

1行おきに色付け(変数使用)
以下のコードを実行すると、行を縞模様に色付けします。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
Q = 2
#行をループ
for i in range(2,ws.max_row):
#偶数行だったら
if i == Q:
#列ループ
for j in range(1,ws.max_column + 1):
#セルに色付け
ws.cell(row=Q, column=j).fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
Q = Q + 2
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test交互色付け.xlsx')
コード実行後
シート内の行を交互に着色します。
変数 [Q] にて、偶数行を指定しています。

動作環境
Python 3.7.4
openpyxl 3.0.5
特定文字を含むセルに色付け
特定文字を含むセルに色付け
以下のコードを実行すると、特定の文字列を含むセルに着色します。
import openpyxl
from openpyxl.styles import PatternFill
#エクセルファイル・シートを指定
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#探す文字列を指定
My_Value = ['左','村','川']
#[My_Value]をループ
for list in My_Value:
#1行ずつループ
for row in ws.iter_rows():
#1セルずつループ
for cell in row:
#セルに [My_Value] の文字列が含まれていたら
if list in str(cell.value):
#該当セルに色付け
cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testセル色付け.xlsx')
コード実行後
Excelシート内で、特定文字が入っているセルの背景色に色付けします。
[My_Value = [‘左’,’村’,’川’]] にて、検索する文字列を指定します。

動作環境
Python 3.7.4
openpyxl 3.0.5
この記事がお役に立ちますと幸いです。
・【Python】エクセルを自動処理する方法まとめ

「Python 1年生 体験してわかる!会話でまなべる!」
初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!