【Python】openpyxlでExcelを読み込む方法【ワークブックからシートの指定まで】

PythonでExcel操作をするときには必ずファイル(ワークブック)の読み込みからシートの指定をする必要があります。

今回はそんな基本的な部分のコードの書き方を3ステップで紹介していきます。

1:openpyxlモジュールのインポート

Excel操作で使うのはopenpyxlモジュールです。「pip」でインストールしてから使いましょう。以下のようにインポートすると使うことができます。

2:ファイルの読み込み

ファイルパスを「openpyxl.load_workbook関数」に渡す

この関数は引数がExcelファイルパスで戻り値がWorkbookオブジェクトです。

上の書き方ではこのオブジェクトをwb変数に格納しています。

以下ではこのオブジェクトのメソッドや属性を紹介しています。

3:シートの読み込み

シート名一覧を表示

  • get_sheet_names()メソッドを使う
    • 警告が出る
  • sheetnames属性を使う

メソッドを使うとシート名一覧の取得はできますが「DeprecationWarning」という警告が出ます。『「sheetnames属性」を使ってね』という内容です。

メソッドを使う方法

  • get_sheet_by_name()メソッドの引数にシート名を渡す
  • シート名の全角と半角を間違えるとエラーになる

Workbookオブジェクトからシートと読み込むとWorksheetオブジェクトが作られます。

このメソッドでも取得できますが次に紹介する方法をを使ってくださいという警告が出る場合があります。以下に残り2つの方法を紹介しています。

インデックス指定

  • worksheets属性に整数のインデックスを渡す
  • ワークブックのシートに前から順に番号が割り振られている

キー(シート名)を指定

作成したWorkbookオブジェクトに直接シート名を渡す

辞書のようにシート名をキーとしてWorksheetオブジェクトを取得しています。この書き方の方がシンプルですね。

保存して終了

  • saveメソッドを使う
  • 引数は保存先のExcelファイルパス
  • 上書き保存したいなら開いたときのパスを渡せばOK

Workbookオブジェクトに対してsaveメソッドを使います。新規ファイルに保存したい場合はファイルパスを変更しましょう。

まとめ

  • openpyxlをインストール&インポート
  • Workbookオブジェクトを作成
    • openpyxl.load_workbook()関数にパスを渡す
  • シートの読み込む方法3つ
    • get_sheet_by_name()メソッドにシート名を渡す
    • worksheets属性にインデックスを指定
    • Workbookオブジェクトにシート名を指定
  • シート名一覧を取得する方法2つ
    • get_sheet_names()メソッド(非推奨)
    • sheetnames属性(推奨)

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]