
セルの値を読み書きする基本
openpyxlを使ってExcelファイルのセルの値を読み書きするには、まず正しい順序でExcelファイル(ワークブック)にアクセスする必要があります。
ステップごとのアクセス手順
- ブックを開く:Excelファイル全体を操作するための入り口です。
- シートを選ぶ:ファイル内の特定のシートを指定します。
- セルを指定する:シート内の特定のセルにアクセスします。
ポイントまとめ

openpyxlでは、必ず「ブック → シート → セル」の順番でアクセスします。
このように、操作の流れを順を追って覚えることで、openpyxlの基本的な使い方がスムーズに理解できます。
ブックにアクセスする
openpyxlを使ってExcelファイルを操作するには、まず「ブック」にアクセスする必要があります。ブックとは、Excelファイル全体を指します。openpyxlでは、load_workbookという関数を使って、既存のExcelファイルを開くことができます。
サンプルコード
from openpyxl import load_workbook
# Excelファイル(例:sample.xlsx)を読み込む
wb = load_workbook('sample.xlsx')
シートへアクセス
ブック(Excelファイル)を読み込んだら、次にアクセスするのが「シート」です。Excelファイルの中には複数のシートが存在する場合があり、操作したいシートを明確に指定する必要があります。
シート名でアクセスする方法
from openpyxl import load_workbook
# Excelファイルを読み込む
wb = load_workbook('sample.xlsx')
# 'Sheet1'という名前のシートにアクセスする
ws = wb['Sheet1']
シートをインデックスで指定する方法
# 最初のシートにアクセスする(インデックスは0から始まる)
first_sheet = wb.worksheets[0]
補足ポイント
- インデックスは0から始まることに注意してください。
- どんなシートがあるかを確認したいときは、以下のコードで一覧表示できます:
# ブック内のシート名一覧を表示
print(wb.sheetnames)
セルの値を読み取る方法
openpyxlを使ってExcelファイルからセルの値を読み取るには、まず対象のセルを指定し、そのvalueプロパティを使います。
読み取る方法はA1形式、R1C1形式の2種類があります。
サンプルコード(A1形式での指定)
from openpyxl import load_workbook
# Excelファイルを読み込む
wb = load_workbook('sample.xlsx')
# 対象のシートを選択
ws = wb['Sheet1']
# A1セルの値を取得
cell_value = ws['A1'].value
# 結果を表示
print("A1セルの値は:", cell_value)
R1C1形式でのセル読み取り
A1のような「列+行」の形式ではなく、rowとcolumnで位置を指定する方法もあります。
これはR1C1形式と呼ばれ、繰り返し処理などに便利です。
# R1C1形式でA1(1行1列)の値を取得
cell_value = ws.cell(row=1, column=1).value
print("R1C1形式でのA1セルの値は:", cell_value)
Cell型とは?
openpyxlでは、Excelの各セルはCell型のオブジェクトとして扱われます。このCell型には、セルの位置や値、フォーマットなど、さまざまな情報が格納されています。
Cell型の主なプロパティ
- value:セルに入力されている値を取得または設定する
- row:セルの行番号(1から始まる)
- column:セルの列番号(1から始まる)
- coordinate:セルの番地(例:’B2’)を文字列として取得
- data_type:セルのデータ型(例:’s’=文字列, ‘n’=数値, ‘d’=日付)
サンプルコード
from openpyxl import load_workbook
wb = load_workbook('sample.xlsx')
ws = wb.active
cell = ws['B2']
print("セルの値:", cell.value)
print("セルの位置:", cell.coordinate)
print("行番号:", cell.row)
print("列番号:", cell.column)
print("データ型:", cell.data_type)
特定範囲のセルを読み取る方法
openpyxlを使うと、Excelの特定範囲のセルをまとめて読み取ることができます。これにより、行や列のデータを一括で処理したり、表形式のデータを効率よく操作したりすることが可能になります。
セル範囲を指定して読み取る手順
- 1. Excelファイルを読み込む
- 2. 対象のシートを選択する
- 3. 範囲(例:A1:C3)を指定して繰り返し処理で値を取得する
サンプルコード(スライス形式)
from openpyxl import load_workbook
# Excelファイルを読み込む
wb = load_workbook('sample.xlsx')
ws = wb['Sheet1']
# A1からC3までの範囲を読み取る
for row in ws['A1:C3']:
for cell in row:
print(f"{cell.coordinate}: {cell.value}")
サンプルコード(iter_rowsを使う方法)
iter_rows()を使うと、範囲を指定しながらセルを読み取ることができます。データ量が多い場合や柔軟な処理を行いたい場合におすすめです。
# A1からC3までの範囲を読み取る(iter_rowsを使用)
for row in ws.iter_rows(min_row=1, max_row=3, min_col=1, max_col=3):
for cell in row:
print(f"{cell.coordinate}: {cell.value}")
コメント