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()
で複数行を効率よく読み込み可能- シート名やセル番地を使って柔軟にデータを取得できる