openpyxlでエクセルファイルを編集しているんだけど、
C列だけセルを塗りつぶししたい…。
なるほど…。
では今回は、「openpyxlで列全体や行全体を書式設定する方法」を
できるだけわかりやすく解説いたします。
openpyxlで列全体や行全体を書式設定する方法
「for文」と「iter_rows」を使います。まずは全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws = wb['Sheet1']
fill_solid_red = PatternFill(patternType='solid', fgColor='FF0000')
for row in ws.iter_rows(min_col=3, max_col=3, min_row=1, max_row=ws.max_row):
for cell in row:
cell.fill = fill_solid_red
wb.save('C:/Utatane/output.xlsx')
for row in ws.iter_rows(min_col=3, max_col=3, min_row=1, max_row=ws.max_row):
for cell in row:
cell.fill = fill_solid_red
実行結果
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート~ブック・シートの取得~書式の設定
import openpyxl
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws = wb['Sheet1']
fill_solid_red = PatternFill(patternType='solid', fgColor='FF0000')
上記コードにて、エクセル操作に必要な「openpyxl」のインポート、エクセルブック・シートを取得、書式の設定をしています。
今回はわかりやすくするために、塗りつぶしをチョイスしました。
目的の書式に応じて変更してください。
基礎知識:塗りつぶしの設定
基礎知識:文字色の変更
基礎知識:罫線の設定
特定の範囲に書式設定を適用
for row in ws.iter_rows(min_col=3, max_col=3, min_row=1, max_row=ws.max_row):
for cell in row:
cell.fill = fill_solid_red
上記コードにて、特定の範囲に書式設定を適用しています。
今回は「C列全体」の塗りつぶしです。
9行目に注目してください。
iter_rowsの()内にC列のみを取得する記述をしています。
for文を使い、「C1→C2→C3・・・」とC列の最後まで順番に取得し、
前項で設定した塗りつぶし設定を適用するという処理を繰り返しています。
for文・iter_rowsについては下記記事をご参考ください。
書式設定したい範囲に応じて、iter_rowsの()内の記述を変えてください。
エクセルの4行目を塗りつぶしたい場合は、下記のように記述することで実現します。
for cell in ws[4]:
cell.fill = fill_solid_red
行全体を指定する方が簡単ですね。
うまく動作しない場合の対処法
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlで列全体や行全体の書式設定をする方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!