【Python】openpyxlでExcelのセルの背景色を変更する方法

Pythonでエクセルの背景色を変更するコードの書き方をまとめました。
単体と指定範囲でのコードの書き方を記載しているので参考にしてください。

「openpyxl」でExcelのセルの背景色を変更する方法

openpyxlでExcelのセルの背景色を変更する方法は「fill」コマンドを使用します。

以下はfillコマンドを使用した例となります。

import openpyxl as px
fill = px.styles.PatternFill(patternType='solid',fgColor='D1FE7B',bgColor='D1FE7B')

importでopenpyxl→「px」を指定し、fillコマンドで「px.styles.PatternFill」を定義します。

「Excel」セル単体の背景色変更

以下では、セル単体の背景色を変更する場合のコードとなります。

※excel_collor.py

import openpyxl as px
from openpyxl.styles import Border, Side

book = px.Workbook()
book.save('sample.xlsx')

wb = px.load_workbook('sample.xlsx')
ws = wb['Sheet']

## 背景色を変更
fill = px.styles.PatternFill(patternType='solid',fgColor='D1FE7B',bgColor='D1FE7B')

## セルの指定
ws['A5'].fill = fill


wb.save('sample.xlsx')
print('セルの背景色変更完了')

エクセルを作成後、11行目で背景色のカラーを設定し、14行目で目的のセルを指定します。

※実行結果

PS C:> python .excel_collor.py
セルの背景色変更完了
PS C:> 

エクセルを開くと「A5」のセルの背景色が変わったことが確認できます。

「Excel」セル指定範囲の背景色変更

以下では、セルを範囲指定し、背景色を変更するコードとなります。
範囲指定する場合は「for」分を利用して作成すると便利です。

※excel_collor.py

import openpyxl as px
from openpyxl.styles import Border, Side

book = px.Workbook()
book.save('sample.xlsx')

wb = px.load_workbook('sample.xlsx')
ws = wb['Sheet']

## 背景色を変更_範囲指定
for rows in ws['A5':'D5']:
    for cell in rows:
        cell.fill = px.styles.PatternFill(patternType='solid',fgColor='D1FE7B',bgColor='D1FE7B')

wb.save('sample.xlsx')
print('セルの背景色変更完了')

※実行結果

PS C:> python .excel_collor.py
セルの背景色変更完了
PS C:> 

指定範囲「A5~D5」でセルの背景色が変更されたことが確認できます。

Excelの罫線とセルの結合を合わせたコード

最後に前回、罫線とセルの結合を実施したコードに今回の背景色を合わせたコードとなります。

※範囲指定

import openpyxl as px
from openpyxl.styles import Border, Side

book = px.Workbook()
book.save('sample.xlsx')

wb = px.load_workbook('sample.xlsx')
ws = wb['Sheet']
 
side1 = Side(style = 'thick', color='000000')
 
for rows in ws['A1':'D5']:
    for cell in rows:
        cell.border = Border(left = side1, right = side1, top = side1, bottom = side1)

#セルの結合
ws.merge_cells('A2:D4')

## 背景色を変更_範囲指定
for rows in ws['A5':'D5']:
    for cell in rows:
        cell.fill = px.styles.PatternFill(patternType='solid',fgColor='D1FE7B',bgColor='D1FE7B')


wb.save('sample.xlsx')
print('罫線の記載完了')

※実行結果

PS C:> python .excel_line.py
罫線の記載完了
PS C:> 

以下で、罫線とセルの結合、そして範囲指定でセルの背景色が変更されたことが確認できます。

openpyxlを使用したセルの背景色を変更するプログラムのプログラムとなります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!