はじめに
これまでの記事では、Pythonのopenpyxlを使ってExcelファイルを読み込む方法から、シートやセルの取得方法までを学んできました。
今回は、それらの内容を振り返りながら、Excelファイルを読み込んでセルの値を取得するまでの流れをまとめて解説します。
この記事を読めば、openpyxlでExcelファイルを扱う基本的な流れを一通り理解できるようになります。
openpyxlをインポートする
まずは、Excelファイルを操作するためにopenpyxlをインポートします。
import openpyxl
これで、openpyxlの機能が使えるようになります。
Excelファイルを読み込む
次に、load_workbook()関数を使ってExcelファイルを開きます。
wb = openpyxl.load_workbook('rakuten.xlsx')
load_workbook()はExcelファイルを読み込み、Workbookオブジェクトを返します。
Workbookオブジェクトには、シートやセルへアクセスするための情報がすべて格納されています。
ワークシートを取得する
Workbookオブジェクトから、操作したいシートを取得します。
現在開かれているシートを取得する場合は、activeを使用します。
Sheet = wb.active
シート名を指定して取得する場合は、次のように書きます。
Sheet = wb['rakuten']
また、シート名の一覧を確認したい場合は、
print(wb.sheetnames)
を使用します。
用途に応じて、active・sheetnames・シート名指定を使い分けましょう。
セルを取得する
ワークシートを取得したら、セルを取得します。
もっとも簡単なのは、セル番地を指定する方法です。
cell = Sheet['A1']
cell()メソッドを使うこともできます。
cell = Sheet.cell(row=1, column=1)
rowには行番号、columnには列番号を指定します。
また、複数セルを取得したい場合はスライスを使います。
Sheet['A1':'C3']
列全体を取得する場合は、
list(Sheet.columns)[1]
のようにlist()へ変換してインデックス番号で指定できます。
セルの値を取得する
セルを取得しただけでは、セルオブジェクトが返されます。
実際に入力されている値を取得するには、.value属性を使用します。
print(cell.value)
列全体の値を取得する場合は、for文を組み合わせます。
for cell in list(Sheet.columns)[1]:
print(cell.value)
このようにすることで、B列の値を上から順番に取得できます。
ファイルを読み込む流れ
openpyxlでExcelファイルを読み込む流れは、次の5ステップです。
import openpyxlでライブラリを読み込むload_workbook()でWorkbookオブジェクトを取得するactiveやsheetnames、シート名を指定してWorksheetオブジェクトを取得する- インデックスやスライス、
cell()メソッドを使ってCellオブジェクトを取得する .valueでセルの値を取得する
この流れを覚えておけば、Excelファイルの読み取りはほとんど対応できるようになります。
まとめ
今回は、openpyxlでExcelファイルを読み込み、セルの値を取得するまでの一連の流れをまとめました。
今回のポイントは以下のとおりです。
import openpyxlでライブラリを読み込むload_workbook()でExcelファイルを開くactiveやシート名でWorksheetを取得する- セルはインデックス・スライス・
cell()メソッドで取得できる .valueを使ってセルの値を取得するfor文を組み合わせると複数のセルも簡単に読み込める
この基本を理解しておけば、データの集計や自動入力、Excelの自動化など、より実践的なプログラムにも応用できます。次回以降も、openpyxlの便利な機能を学びながら、Excel操作をさらに効率化していきましょう。

コメント