【Python×Excel】既存のExcelファイルを読み込む方法(openpyxl編)

Python

 

ExcelファイルをPythonで操作したいとき、まず必要なのが、ファイルの読み込みです。
この記事では、Pythonのライブラリ「openpyxl(オープンピーエックスワイエル)」を使って、
既存のExcelファイルからデータを読み取る方法を、実例を交えて解説します。

それでは見ていきましょう!





1. openpyxlとは?

openpyxl

は、PythonでExcel(拡張子 .xlsx)ファイルを読み書きできるライブラリです。
Excelを操作したいときの定番ツールです。

2. 事前準備(インストール)

では、openpyxlをPythonに取り込んでみましょう。
ターミナル(またはコマンドプロンプト)で、以下のコマンドを実行してインストールします:

pip install openpyxl

3. 読み込むExcelファイルの例

今回は次のようなExcelファイル(sample.xlsx)を読み込むとしましょう。

A B C
田中 28 東京
鈴木 35 大阪
佐藤 42 名古屋

4. Excelファイルを読み込む基本コード

それでは見本のコードです。

今回はA1に格納されている「田中」という文字を抜き出します。

コードは以下の通りです。

from openpyxl import load_workbook

# Excelファイルを読み込む
wb = load_workbook('sample.xlsx')

# アクティブなシートを取得
ws = wb.active

# A1セルの値を取得
print(ws['A1'].value)  # 結果:'名前'

5. 複数のセルをループで読み込む

表全体を読み込むには、行ごとにループ処理を使います。

from openpyxl import load_workbook

# Excelファイルを読み込む
wb = load_workbook('sample.xlsx')

# アクティブなシートを取得
ws = wb.active

for row in ws.iter_rows(min_row=1, values_only=True):
    name, age, city = row
    print(f"{name}さんは{city}出身で、年齢は{age}歳です")

出力結果:

田中さんは東京出身で、年齢は28歳です
鈴木さんは大阪出身で、年齢は35歳です
佐藤さんは名古屋出身で、年齢は42歳です

6. 特定のシートを指定して読み込む

複数のシートがある場合は、シート名で指定できます。

ws = wb['社員一覧']  # シート名が「社員一覧」の場合

7. セルの範囲を指定して読む

セル範囲を元に、読み取りたい時は

['A2:C4']」のように、[]で囲むことで指定できます。
見本だと、A2からC4までの範囲を読み取ってくれますよ!

for row in ws['A2:C4']:
    for cell in row:
        print(cell.value, end='\t')
    print()

出力結果は以下の通りです。

まとめ

  • load_workbook() を使えば、既存のExcelファイルを読み込める
  • .active で現在のシートを取得
  • iter_rows() で複数行を効率よく読み込み可能
  • シート名やセル番地を使って柔軟にデータを取得できる