取引先から送られてきた資料なんだけど、
先頭行(タイトル行)だけに網掛けが設定されていた。
とても見やすくていいなと思ったんだけど、
openpyxlで先頭行だけに網掛け(塗りつぶし)を設定する方法があれば教えて!
そういうこと、よくありますよね!
でもそれは良いことです!
成長しようと頑張るあなたに向けて、
比較的簡単にできる方法を紹介いたします!
openpyxlで先頭行のセルを網掛け(塗りつぶし)にする方法を、
Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
openpyxlで先頭行のセルを網掛け(塗りつぶし)にするには
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
fill_lg_gray = PatternFill(patternType='lightGray', fgColor='808080')
for cell in ws['1:1']:
cell.fill = fill_lg_gray
wb.save('input.xlsx')
fill_lg_gray = PatternFill(patternType='lightGray', fgColor='808080')
for cell in ws['1:1']:
cell.fill = fill_lg_gray
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
openpyxlの基礎解説
既存ファイルを開いて保存する方法などの操作の基本解説は、下記記事で行っております。
ご参考ください。
解説:先頭行のセルを網掛け(塗りつぶし)にする
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
網掛け(塗りつぶし)の設定
fill_lg_gray = PatternFill(patternType='lightGray', fgColor='808080')
上記一文で、網掛け(塗りつぶし)設定をひとまず変数に入れています。
今回は一般的な網掛けをチョイスしております。
網掛けや塗りつぶしには色んな種類があり、色も選ぶことができます。
種類や色は下記記事をご参考ください。
インポート含め、網掛け(塗りつぶし)の基礎解説も行っております。
for文の解説
for cell in ws['1:1']:
cell.fill = fill_lg_gray
上記を記述することで、先頭行のみに網掛け(塗りつぶし)を適用することができます。
「 ws[‘1:1’] 」は「1行目のみ」という条件を指定をしています。
それを「cell」という変数に入れています。
あとは「for文」にて1セルずつ網掛け(塗りつぶし)を適用することを繰り返しています。
「cell」には「1行目のみ」という条件がありますので、1行目の終わりまででfor文が終了します。
[‘1:1’]のところを下記のように変更すると、別の個所に網掛け(塗りつぶし)を設定することができます。
- [‘2:2’]:2行目のみ
- [‘A:A’]:A列のみ
for文の基礎は下記記事にて、できるだけわかりやすく解説しておりますので、ご参考ください。
下記記事にて、表全体に罫線を設定する方法を解説しております。
併せて活用することで、さらに体裁が良くなると思います。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlで先頭行のセルを網掛け(塗りつぶし)にする方法を解説いたしました。
先頭行だけを太字にしたり、斜体にすることにも応用できますので、ぜひご活用ください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!