- Pythonを使ってexcel書き込み・読み込みって簡単にできるの?
- openpyxlは使ったことあるけど使い方をすぐ忘れちゃうんだよなー
こんな悩みを解消します。
とっても便利なexcelですが、Pythonの”openpyxl”を使って書き込み・読み込みができるようになれば、もっと便利に使うことができます。
- Pythonを使ったことが無い人は、単純なexcel操作をPythonで書いた場合にどんな感じかイメージを持てるようになります「意外と簡単!」ということが伝えることを目標としています
- すでにopenpyxlを使ったことがある人は、操作方法の備忘録として参照できます
Contents
excelブック関連の操作
openpyxlを使ったexcelの操作について、ブック→シート→セルの順番で紹介していきます。まずはブックから。
ブックを開くパターンは、2パターンありますね。
- 新しくブックを作る
- 既存のブックを読み込む
新規作成する場合は、引数(カッコの中身)に何も指定する必要はありませんが、既存のブックを読み込む場合はブックのパスを記述します。
どちらのパターンで開いても、保存するときは/Users/hoge/Desktop/test.xlsxこんな風にパスを指定しましょう。
エクセルシート関連の操作
ここからはもう少し丁寧に解説していきます。
シート名の取得
この記事では最終的にセルの読み込み・書き込みまで行いますが、処理対象となるセルを指定するためには、そのセルが属するシートを特定しなければなりません。
ここではsheetsという変数にシート名を格納しています。
sheetsを出力すると[“sheet1”, “sheet2”, “sheet3”] といったリストが返ってくるでしょう。
※デフォルトのシート枚数設定をいじっていたり、OSがMACだったりすると違ったリストが返ってくる
シート指定
sheetsにはリスト形式でシート名が格納されていました。書き込みたいセルが存在しているシートを特定していきます。
リスト形式で格納されているので、ここでは一番最初に格納されている”0″を指定して変数sheetに格納。
シート作成
新しくexcelシートを作成する場合は、シーの名前をtitle、シートの挿入位置をindexで指定します。
例えば、先頭に”first_sheet”という名称のシートを新規作成したければwb.create_sheet(“first_sheet”, 0)と記述すればOKですね。
シート削除
シートを削除したい場合は、このコードの引数に削除したいシートを指定します。上で新しく作ったシートを削除するのであればwb.remove(wb[“first_sheet”])ですね。
シート名変更
こちらはシンプルなので割愛。
シートタブの色変更
色指定については、基本的な色であれば英語で書けばOKですが、#000000のようなカラーコードで記述した方がより細かく指定できます。
参考
原色大辞典原色大辞典
セルの書き込み、読み込みに関する操作
ブック・シートの指定方法までまとめたので、最後にセルの書き込み・読み込みに関する操作を見ていきます。
セルを指定して書き込み
セルを指定するには上の2つの方法があります。記述の仕方は違っても、どちらも”A1″セルを指定しています。
2つ目の例は直感的にわかるとして、1つ目の例は行“row”列“column”をそれぞれ指定することで、A1セルを特定しています。
セルの番地を取得
今度は逆に、変数に格納されているセルの番地を取得します。
2行目の結果を出力すると“A1”と出力されるでしょう。
最大行列を取得
あるシートに存在するセルの値を更新する場合、現在どの範囲にデータが存在するか知りたいというケースがよくあります。
excelマクロだと、色々制約があって長いコードになってしまうのですが、openpyxlならこれだけで最大行列を取得できます。
複数の行列を選択(範囲選択)
指定範囲のセルオブジェクトが、タプル形式で返ってきます。上の例でいうと((<cell sheet1.A1>,<cell sheet1.B1>,<cell sheet1.C1>,<cell sheet1.D1>),(<cell sheet1.A2>,….<cell sheet1.D4>))ですね。
セルの文字と番号を相互変換
エクセルを使っていると「K列って何列目だ??」なんて場面に遭遇しますよね。そんな場合はget_index_from_string()の引数にKを渡してあげれば11という結果が返ってきます。
get_column_letter()はその逆の場合に使えます。
openpyxlを使えばexcelの読み込み・書き込みを効率化しよう!
ここまでopenpyxlの基本操作を紹介してきましたが、あとは繰り返し処理(for文)くらい覚えればいつもやっているexcel操作はだいたいできるのではないでしょうか。
自分のPCでPythonを動かしてみたい方はこの本を参考にしてください。
株価の自動取得くらいはできるようになります。
簡単なRPAを自作してみた【株価取得してエクセルに書き込み】
コメントを残す