Python で Excel を操作・自動化するには、主に以下の 2 つのライブラリがよく使われます:
openpyxl: .xlsx(Excel 2007以降)対応、セルごとの操作が得意pandas:表全体の読み込み・処理が得意(高速・便利)ここではまず openpyxl を使った方法 を解説します。
そのあとに pandas を使った方法 も紹介します。
pip install openpyxl pandas
以下のような表(Sheet名は “Sheet1″)があるとします:
| A | B | C |
|---|---|---|
| 100 | 200 | 300 |
| 101 | 201 | 301 |
| 102 | 202 | 302 |
from openpyxl import load_workbook
# Excel ファイルを読み込み
wb = load_workbook('example.xlsx', data_only=True)
ws = wb['Sheet1'] # シート名を指定
value_a1 = ws['A1'].value
print("A1の値:", value_a1)
表示結果
A1の値: 100
row_1 = [cell.value for cell in ws[1]]
print("1行目の値:", row_1)
表示結果
1行目の値: [100, 200, 300]
column_a = [cell.value for cell in ws['A']]
print("A列の値:", column_a)
表示結果
A列の値: [100, 101, 102]
all_data = [[cell.value for cell in row] for row in ws.iter_rows()]
print("表全体:", all_data)
# 行ごとに出力したい場合
for i, row in enumerate(all_data, 1):
print(f"{i}行目: {row}")
表示結果
表全体: [[100, 200, 300], [101, 201, 301], [102, 202, 302]]
1行目: [100, 200, 300]
2行目: [101, 201, 301]
3行目: [102, 202, 302]
import pandas as pd
# Excelファイルからデータフレームとして読み込む
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
value_a1 = df.iloc[0, 0]
print("A1の値:", value_a1)
表示結果
A1の値: 101
row_1 = df.iloc[0].tolist()
print("1行目の値:", row_1)
表示結果
1行目の値: [101, 201, 301]
column_a = df.iloc[:, 0].tolist()
print("A列の値:", column_a)
表示結果
A列の値: [101, 102]
all_values = df.values.tolist()
print("表全体:", all_values)
表示結果
表全体: [[101, 201, 301], [102, 202, 302]]
| シーン | おすすめ |
|---|---|
| セル単位で編集・取得したい | openpyxl |
| 表全体を一括処理したい | pandas |
必要に応じて、どちらの方法も組み合わせることも可能です。
さらに複雑な処理(グラフ、書式設定など)が必要な場合は openpyxl を使うのがよいです。