送られてきたエクセルファイルを編集するんだけど、
フォントが特殊すぎて見づらい…。
openpyxlの編集ついでに全部のフォントを変更する方法を教えて!
了解!
簡単にできる方法を紹介いたします!
【著者情報】
Python歴3年。
入社2年目の春に先輩が突然トンズラし、業務を半分肩代わりするハメに…。
今までの1.5倍の仕事をこなせるはずもなく、業務効率化を模索。
業務とPythonの相性が良く、2倍以上の効率化を実現。現在も効率化を進行中。
openpyxlで表全体のフォントを変更するには
「Font()」と簡単なfor文で変更可能です。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
from openpyxl.styles.fonts import Font
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
popfont = Font(name = 'HGP創英角ポップ体')
for row in ws:
for cell in row:
ws[cell.coordinate].font = popfont
wb.save('input.xlsx')
popfont = Font(name = 'HGP創英角ポップ体')
for row in ws:
for cell in row:
ws[cell.coordinate].font = popfont
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
openpyxlの基礎解説
既存ファイルを開いて保存する方法などの操作の基本解説は、下記記事で行っております。
ご参考ください。
解説:表全体のフォントを変更
>>7.popfont = Font(name = ‘HGP創英角ポップ体’)
変更後のフォントを変数に入れます。
【 変数 = Font(name = ‘変更後のフォント名’) 】
フォント変更の基礎解説は、下記記事をご参考ください。
for row in ws:
for cell in row:
ws[cell.coordinate].font = popfont
上記を記述することで、表全体に「popfont」を適用することができます。
1行目でws(ワークシート)の1行目を変数「row」に入れる
2行目でrow(行)の1番目のセルを変数「cell」に入れる
3行目でcell(セル)に「popfont」を適用します
セルが右端まで行けば次の行。一番下の行の右端のセルまで行けば終了となります。
for文の解説は下記記事をご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlで表全体のフォントを変更する方法を解説いたしました。
フォントサイズを変更したり、罫線を設定する方法にも応用できますので、ぜひご活用ください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!