既存のエクセルファイルを編集するために、
「openpyxl」というのが必要らしい…。
「openpyxlのインストール方法」や
「openpyxlの使い方」が知りたい…。
「openpyxlのインストール方法」
「openpyxlがインストールできない場合の対処法」
「openpyxlの基本的な使い方」を
できるだけわかりやすく解説いたします。
【著者情報】
Python歴3年。
入社2年目の春に先輩が突然トンズラし、業務を半分肩代わりするハメに…。
今までの1.5倍の仕事をこなせるはずもなく、苦しむ毎日。
業務効率化を模索中にPythonと出合う。
業務とPythonの相性が良く、2倍以上の効率化を実現。現在も効率化を進行中。
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
openpyxlのインストール方法
インストール手順は以下の通りです。
- Windowsの画面左下にあるWindowsマーク(田)をクリック
- 出てきた画面上の検索窓に「コマンドプロンプト」と入力
- 出てきた「コマンドプロンプト」をクリックすると、黒い画面が起動
(ちょっと怪しげですが、大丈夫です) - カーソルが点滅し始めたら、「pip install openpyxl」と入力し、「Enterキー」を押す
(何やらごちゃごちゃ出てきます) - 最後の方に「Successfully installed~」と表示されていればインストールは完了
「5」までいけば「openpyxl」のインストールが完了です。お疲れ様でした。
これで、既存エクセルを編集し放題!業務効率爆上がりの夢のような自動化が待っています!
文字だけではわかりずらいので、画像でも解説いたします。
1.Windowsの画面左下にあるWindowsマーク(田)をクリック
2.出てきた画面上の検索窓に「コマンドプロンプト」と入力
3.出てきた「コマンドプロンプト」をクリックすると、黒い画面が起動
4.カーソルが点滅し始めたら、「pip install openpyxl」と入力し、「Enterキー」を押す
5.最後の方に「Successfully installed~」と表示されていればインストールは完了
※バージョンは異なる場合があります
著者と同じ「Anaconda」の「Jupyter Lab」を使用されている方は、
コードを入力する画面で「!pip install openpyxl」と入力し実行してください。
openpyxlのインストールができない場合
openpyxlのインストールができない場合は、pipのバージョンが古い可能性があります。
「ERROR: To modify pip, please run the following command:」
というエラーが出た場合は、その下にあるコマンドをコマンドプロンプトに入力して、
「Enterキー」を押してみてください。
おそらく下記のようなコマンドが表示されていると思います。
C:\(割愛:Pythonが入っているフォルダのアドレス)\python.exe -m pip install –upgrade pip
「Successfully installed~」と表示されたら、再度「openpyxl」のインストールを行ってみてください。
openpyxlとは
前項で「openpyxl」のインストール方法を解説いたしました。
openpyxlを使い始める前に、openpyxlとは何なのか、何ができるのかを簡単に解説いたします。
「openpyxl」とは、既存のエクセルファイルを編集することができる「Pythonのライブラリ」です。
「ライブラリ」とは何でしょうか?
「ライブラリ」は本棚のようなもので、「openpyxl」の他にも「datetime」や「pandas」など、
いろいろな本が並んでいるとイメージしてください。
前項で解説した「openpyxlのインストール」は、
【書店で「openpyxl」の本を購入して、家の本棚(ライブラリ)に入れた】
といえばわかりやすいでしょうか。いつでも見ることができる状態にしたということです。
では、この「openpyxl」を使って何ができるのでしょうか。
openpyxlでできること
代表的なのは下記のとおりです。
- 文字の書き込み・編集・削除
- 文字の装飾(文字色・サイズ変更、太字など)
- セルの装飾(罫線追加、塗りつぶしなど)
- 行・列の追加・削除
- シートの追加・削除・変更
- グラフの作成
今回は長くなるため解説しませんが、当ブログの他の記事で解説しております。
できるだけわかりやすく解説しておりますので、上記各リンクからご覧ください。
他にも知りたい情報がある場合は、下記の検索窓から検索してみましょう!
openpyxlの使い方
まずは簡単な使い方を学習しましょう。
ほぼ毎回使うものばかりですので、ブックマーク推奨です。
今回解説するのは下記の4種類です。
- openpyxlのインポート
- 既存エクセルブックを開き、変数に代入
- エクセルシートを変数に代入
- (任意の編集:今回は割愛)
- 編集したエクセルブックを保存
コードで表すと下記のようになります。
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
wb.save('output.xlsx')
1つ1つ解説いたします。
openpyxlのインポート
import openpyxl
上記一文にて、「openpyxl」をインポートすることができます。
「インポート」とは何でしょうか?
前項で「インストール」は「書店で買ってきたopenpyxlの本を家の本棚に置く」ようなものとお伝えしました。
「インポート」も例えるなら、「家の本棚からopenpyxlの本を出して、机の上で開く」ようなものでしょうか。
「国語辞典」など、本棚にあるだけでは意味がなく、中身を見ることができません。
openpyxlを使うために、机の上で開いたというふうに思ってください。
「openpyxl」を使う際は、必ずこの「インポート」が必要になります。
インポートが終わったら、次に既存のエクセルブックを開きます。
既存エクセルブックを開き、変数に代入
wb = openpyxl.load_workbook('input.xlsx')
上記一文にて既存のエクセルブックを開きます。
「エクセルブック」という表現をしていますが、
深く考えず、「既存のエクセルファイルを開いた」という解釈で大丈夫です。
()内にはファイル名を指定します。
ファイル名が間違っているとエラーが出たり、違うファイルを開いてしまうため注意しましょう。
<テンプレ>
【 変数 = openpyxl.load_workbook(‘ファイル名’) 】
開いたエクセルブックを変数に代入します。
変数や代入についてよくわからない方は下記記事をご参考ください。
エクセルブックを変数に代入しないと、この後の処理ができません。
必ず変数に代入しましょう。
今回はわかりやすく「WorkBook」を略して「wb」という変数名にしています。
次はエクセルシートを変数に代入します。
エクセルシートを変数に代入
ws = wb['Sheet1']
上記一文で、今度はエクセルシートを変数に代入します。
変数名は、前項のWB同様「WorkSheet」を略して「ws」という名前にしています。
<テンプレ>
【 変数 = ブックを代入した変数[‘エクセルシート名’] 】
[]内には、変数に代入するシートの名前を指定します(編集したいシートの名前です)
しかしながら、時と場合によってシート名が変わったり、わからないこともあるかと思います。
シート名がわからない時のために、シート名以外を指定して開く方法があります。
ws = wb.worksheets[0]
ws = wb.active
【1行目:シート番号を指定して変数に代入】
[]内にシート番号を指定することで、シート名を指定したときと同様にシートを変数へ代入することができます。
シート番号は、一番左のシートが「0」、その左が「1」となります。
一番左が「0」です。「1」ではないため注意が必要です。
【2行目:アクティブなシートを変数に代入】
シート名もシート番号も指定せず、アクティブなシートを変数に代入できます。
アクティブなシートとは何でしょうか?
手動でエクセルファイルを開いたときに、既に見えているシートがありますよね?
あれがアクティブなシートです。
長くなってすみません。
次で最後です。
編集したエクセルブックを保存
wb.save('input.xlsx')
上記一文で編集したエクセルブックを保存することができます。
今回は開いただけで何も編集していませんが、
編集した後は必ず保存しないと編集した内容は残っていませんのでご注意ください。
上記コードは上書き保存をした例です。
開いた「input.xlsx」にそのまま保存する場合に使います。
他にも「別名保存」があります。
wb.save('output.xlsx')
ファイル名が違うだけです。
これはいわゆる「名前を付けて保存」で、開いたファイルとは別の名前で保存します。
開いたファイルを編集前のまま残したい場合に使います。
<テンプレ>
【 ブックを代入した変数.save(‘ファイル名’) 】
今回の解説は以上になります。
ここまで思い通りに動きましたか?
エラーが出たりした場合は、次項を参照してエラーを対処しましょう。
うまくできたら、次はコレ!文字を書き込んでみましょう!
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
list index out of range
規定を超える部分を操作しようとした時に出るエラーです。
今回の場合では、実際にないSheet3(シート番号2)などを指定した場合にも起こります。
ファイルとコードを再確認しましょう。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlのインストール方法や使い方を解説いたしました。
openpyxlを使うことで、業務効率が爆上がりします。
ルーティンワークに取り入れて、めんどうな仕事を減らしましょう!
当ブログでは、Python関する情報を配信しております。
openpyxlに関する有益情報も公開しておりますので、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!