【Python】エクセルのシートを読み込む方法

Pythonでエクセルのシートを読み込み、シートの値を取り出す方法について説明しようと思う。

ステップとしては、以下の通り。

  1. エクセルファイルを読み込む
  2. シート名を指定してシートを取得する
  3. エクセルでは、A1,B2..のようにセルを指定する
  4. まとめて指定する場合には、for文を使う

必要なのは、openpyxlというモジュールだけ。私はanacondaナビゲータでインストールした。

実行環境は、Python3.7、openpyxlは3.0.2だ。

以下のレポジトリに置いてあったexample.xlsxを使う。

https://github.com/oreilly-japan/automatestuff-ja

エクセルファイルを同じディレクトリに設置してコードを書き始める。

DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).

シートを指定するところでワーニングがでた。

get_sheet_by_nameが重複している、らしい。

なんだか気持ち悪いので以下のように修正。

これで、シートが取得できた。

次にセル名を指定して値を取り出してみる。

1つずつ取り出せたが、特定の列をまとめて出力する方法を検討してみた。

まず、シートの最大行と列を取得してみる。

row=7行、column=3列と出力された。

これをfor文で繰り返し指定する。

行を1から7まで出力するようにして、列は2列目(もしくは3列目)を指定。

1 Apples
2 Cherries
3 Pears
4 Oranges
5 Apples
6 Bananas
7 Strawberries

1 73
2 85
3 14
4 52
5 152
6 23
7 98

のように出力されるはず。

やったね!