Excelを扱うことができるPythonライブラリであるopenpyxlでExcelファイルの座標/インデックスからセルを取得する方法を備忘録として残しておきます。
目次
サンプルのExcelファイル
使い方をまとめる上で、以下の「sample.xlsx」という名称のExcelファイルをCドライブ直下に格納したことを想定します。
また、「sample.xlsx」には「購入リスト」と「お店一覧」という名称のシートが2つあることを想定します。

座標/インデックスからセルを取得する
【サンプルコード】
##### 【座標からセルを取得する】 #####
import openpyxl
# Excelファイルのロード
excel_path='C:/sample.xlsm'
workbook = openpyxl.load_workbook(filename=excel_path)
# '購入リスト'という名称のシートを指定
worksheet = workbook['購入リスト']
# 座標からセルを単一取得
cell_B2 = worksheet['B2']
print(f'cell(座標から単一取得)のデータ型: {type(cell_B2)}')
print(f'cell_B2: {cell_B2}')
print('------------------------------------------')
# 座標からセルを範囲取得
cell_B2C3 = worksheet['B2:C3']
print(f'cell(座標から範囲取得)のデータ型: {type(cell_B2C3)}')
print(f'cell_B2C3: {cell_B2C3}')
print('------------------------------------------')
# インデックス(2行目、2列目)からセルを取得
cell_22 = worksheet.cell(row=2, column=2)
print(f'cell(インデックスから取得)のデータ型: {type(cell_22)}')
print(f'cell_22: {cell_22}')
print('------------------------------------------')
# ロードしたExcelファイルを閉じる
workbook.close()
【実行結果】
cell(座標から単一取得)のデータ型: <class 'openpyxl.cell.cell.Cell'>
cell_B2: <Cell '購入リスト'.B2>
------------------------------------------
cell(座標から範囲取得)のデータ型: <class 'tuple'>
cell_B2C3: ((<Cell '購入リスト'.B2>, <Cell '購入リスト'.C2>), (<Cell '購入リスト'.B3>, <Cell '購入リスト'.C3>))
------------------------------------------
cell(インデックスから取得)のデータ型: <class 'openpyxl.cell.cell.Cell'>
cell_22: <Cell '購入リスト'.B2>
------------------------------------------
【説明】
Worksheetオブジェクトの座標をworksheet['座標']のように指定すれば、Cellオブジェクトを取得することができます。- 座標は単一、範囲どちらでも指定が可能です。
ただし、単一の場合は単一のCellオブジェクトが返ります。範囲の場合は、範囲内のCellオブジェクトが入ったタプルが返ります。 Worksheetオブジェクトのcell()でrowに行インデックス(int型)、columnに列インデックス(int型)を指定すれば、インデックスからもCellオブジェクトを取得することができます。- 座標は行は1スタートの数字、列はA~ZZのアルファベットで指定できます。インデックスは行、列ともに1スタートの数字で指定できます。
Worksheetオブジェクトは「openpyxl.worksheet.worksheetモジュール」内のWorksheetクラスで定義されています。Cellオブジェクトは「openpyxl.cell.cellモジュール」内のCellクラスで定義されています。
関連情報
【openpxxlライブラリのまとめ】
【Pythonライブラリのまとめ】
参考
以上!





コメント