【Python】Excelの土日祝に色付け:openpyxlの基本テクニック

Python_エクセル土日祝に色付け_アイキャッチ Python

Pythonで、エクセルの土日祝に自動で色を付ける方法をご紹介します。

ぜひ、お試しください。

Excelの土日祝に色付け

以下のコードを実行すると、土日祝の背景色を塗りつぶします。


import openpyxl
from openpyxl.styles import PatternFill

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx', data_only=True)
ws = wb['Sheet1']

#シートの最終行を取得
Sheet_Max_Row = ws.max_row

#行をループ
for i in range(2,Sheet_Max_Row + 1):

    #B列の値を変数へ格納
    GetYoubi = ws.cell(row=i, column=2).value
    #C列の値を変数へ格納
    GetSyukujitu = ws.cell(row=i, column=3).value

    #土日祝に色付け
    if GetYoubi == '土' or GetYoubi == '日' or GetSyukujitu != None:
        ws.cell(row=i, column=1).fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
        ws.cell(row=i, column=2).fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test土日祝色付け.xlsx')

 

コード実行後

B列が「土」か「日」になっているセルと、

C列に値が入っているセル(祝日)に色付けします。


 
 

Excelの土日祝に色付け(リスト使用)

以下のコードを実行すると、土日祝のセルを塗りつぶします。


import openpyxl
from openpyxl.styles import PatternFill

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx', data_only=True)
ws = wb['Sheet1']

#配列宣言
Shukujitu = []

#E列の祝日をリストへ格納
for row in ws.iter_cols():
    for cell in row:
        if cell.col_idx == 5 and cell.value!=None:
            Shukujitu.append(cell.value)

#リストをループ
for list in Shukujitu:
    for row in ws.iter_cols():
        for cell in row:
            #A列をループ
            if cell.col_idx == 1:
                #祝日だったら
                if list == cell.value:
                    #A列にセルに色付け
                    cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
                    #B列にセルに色付け
                    cell.offset(0,1).fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")

            #B列をループ
            if cell.col_idx == 2:
                if cell.value == '土' or cell.value == '日':
                    #B列にセルに色付け
                    cell.fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")
                    #A列にセルに色付け
                    cell.offset(0,-1).fill = PatternFill(fgColor='FFFF00',bgColor="FFFF00", fill_type = "solid")

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test土日祝色付け.xlsx')

 

コード実行後

土日祝の日付に色付けします。


 
 
参考になりましたら、幸いです。
 

【Python】エクセル処理を自動化:超便利42選
...

 

「Excel×Python最速仕事術」

Excelの面倒な操作はパソコンにやらせよう
実践的な例題で、業務に即したプログラムを紹介
無駄な残業をするのはもうたくさんな方にオススメの1冊です!