【Python】openpyxlでExcelの文字書き込みと色・サイズ・フォント変更をする方法

Pythonのライブラリ「openpyxl」を使用して文字を編集するコードをまとめました。

文字の色の変更、サイズ変更、フォント変更はExcelではよく使用するので参考にしてください。

「openpyxl」でExcelの文字(色・サイズ・フォント)を変更するプログラム

openpyxlを使用して、Excelの文字を編集する際は以下のコードを利用します。

import openpyxl as px

ws['A1'].font = px.styles.fonts.Font(color='FF0000')

コードは「openpyxl」をインポートし、4行目のコードを書くだけで文字を編集することができます。
また、関数を使用してコードを簡単に使用することも可能です。

import openpyxl as px
from openpyxl.styles import Font

ws['A1'].font = Font(color='FF0000')

関数を使用したコードは最後に書いているので参考にしてください。

文字の色を変更するコード

文字の色を変更する場合は「color」コマンドを使用します。
色のコードは以下のサイトなどで確認することができます。

https://www.colordic.org/

以下は「テスト」という文字の色を赤色に変更するコードとなります。

※excel_collor.py

import openpyxl as px

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

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

#文字列記載
ws['A1'].value = 'テスト'

#文字の色を変更
ws['A1'].font = px.styles.fonts.Font(color='FF0000')

wb.save('sample.xlsx')
print('文字作成_完了')

※実行結果

PS C:> python .excel_collor.py
文字作成_完了
PS C:> 

テストの文字の色が赤色になっていることが確認できます。

文字のサイズへ変更するコード

文字のサイズを変更する場合は17行目で追記している「size」コマンドを実行します。
数値を変更することで自由に文字の大きさを変更することができます。

文字のサイズ変更は「テスト2」のコードを参考にしてください。

※excel_collor.py

import openpyxl as px

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

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

#文字列記載
ws['A1'].value = 'テスト'
ws['A2'].value = 'テスト2'

#文字の色を変更
ws['A1'].font = px.styles.fonts.Font(color='FF0000')

#文字の大きさ
ws['A2'].font = px.styles.fonts.Font(size=50)

wb.save('sample.xlsx')
print('文字作成_完了')

※実行結果

PS C:> python .excel_collor.py
文字作成_完了
PS C:> 

以下で「テスト2」の文字のサイズが変更されていることが確認できます。

フォントを変更するコード

文字のフォントを変更する場合は「name」コマンドを使用します。

デフォルトが「MSPゴシック」となっているので、以下はフォント変更で「メイリオ」としています。
フォントの変更は「テスト3」のコードを参考にしてください。

※excel_collor.py

import openpyxl as px

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

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

#文字列記載
ws['A1'].value = 'テスト'
ws['A2'].value = 'テスト2'
ws['A3'].value = 'テスト3'

#文字の色を変更
ws['A1'].font = px.styles.fonts.Font(color='FF0000')

#文字の大きさ
ws['A2'].font = px.styles.fonts.Font(size=50)

#フォント変更
ws['A3'].font = px.styles.fonts.Font(name='メイリオ')

wb.save('sample.xlsx')
print('文字作成_完了')

※実行結果

PS C:> python .excel_collor.py
文字作成_完了
PS C:> 

以下で、文字のフォントが「メイリオ」に変更されたことが確認できます。

単体の文字の色・サイズ・フォントを設定

一つの文字列に上記の変更コマンドをまとめて実行する方法はコマンド間に「,」カンマを使用します。

以下のコードは、「テスト」の文字に赤色・文字サイズ50・フォントを「メイリオ」として設定しています。

※excel_collor.py

import openpyxl as px

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

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

#文字列記載
ws['A1'].value = 'テスト'

#文字の色を変更
ws['A1'].font = px.styles.fonts.Font(color='FF0000',size=50,name='メイリオ')

wb.save('sample.xlsx')
print('文字作成_完了')

プログラム実行後、「テスト」という文字が変更されていることが確認できます。

関数を使ってコードを簡単にする

また、以下のようにコードを毎回書くとめんどくさい方。

ws['A1'].font = px.styles.fonts.Font(color='FF0000')

「px.styles.fonts.Font」を省略して「Font」というコードでプログラムを実行することができます。
これを使用する場合は、以下のコードを使用します。

from openpyxl.styles import Font

これを使用することにより、長い文字列は使用せず、「Font」とコードを省略することができます。

import openpyxl as px
from openpyxl.styles import Font

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

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

#文字列記載
ws['A1'].value = 'テスト'

#文字を編集
ws['A1'].font = Font(color='FF0000',size=50,name='メイリオ')

wb.save('sample.xlsx')
print('文字作成_完了')

エクセルの編集コード(罫線・セルの結合・背景色変更)を合わせたプログラム

最後に以下のコードで、これまでの罫線・セルの結合・背景色の変更を使用したプログラムと合わせたプログラムの作成例をまとめています。

罫線等のプログラム作成の参考記事は以下を参考にしてください。

※excel_line.py

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

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['A5'].value = 'テスト'

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

#文字の色を変更
ws['A5'].font = Font(color='FF0000',size=50,name='メイリオ')

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

## シートに設定
#ws['A5:D5'].fill = fill


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

※実行結果

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

罫線等を作成したExcelの作成ができたことを以下で確認できます。

openpyxlを使用したExcelの文字の編集は以上となります。




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

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

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

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



コメントを残す

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

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

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