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['購入リスト']
# 2行目を開始行として、1行単位で処理をする
for row in worksheet.iter_rows(min_row=2):
print(f"[ {row[0].row}行目 ]")
# 行からセルを1個ずつ取得し、処理をする
for cell in row:
print(f"{cell.column}列目:{cell.value}")
print('------------------------------------------')
# ロードしたExcelファイルを閉じる
workbook.close()
【実行結果】
[ 2行目 ]
1列目:1
2列目:イチゴ
3列目:250
4列目:●×商店
5列目:2019-01-01 00:00:00
------------------------------------------
[ 3行目 ]
1列目:2
2列目:リンゴ
3列目:100
4列目:●×商店
5列目:2019-01-02 00:00:00
------------------------------------------
[ 4行目 ]
1列目:3
2列目:ブドウ
3列目:200
4列目:△△店
5列目:2019-01-03 00:00:00
------------------------------------------
[ 5行目 ]
1列目:4
2列目:ミカン
3列目:50
4列目:△△店
5列目:2019-01-03 00:00:00
------------------------------------------
[ 6行目 ]
1列目:5
2列目:モモ
3列目:200
4列目:××ストア
5列目:2019-01-04 00:00:00
------------------------------------------
【説明】
- Worksheetオブジェクトの
iter_rows()
を使うことで行ごとにセルを取得することができます。 iter_rows()
の引数はiter_rows(min_row=None, max_row=None, min_col=None, max_col=None, values_only=False)
であり、min_row
で開始行、max_row
を終了行、min_col
で開始列、max_col
で終了列を指定できます。values_only
はTrue
にすることで値があるセルのみ取得できます。- 上記のサンプルコードでは、1行目はカラム名が記載されているので、2行目を開始行にしています。
- Worksheetオブジェクトは「
openpyxl.worksheet.worksheet
モジュール」内のWorksheetクラスで定義されています。
関連情報
【openpxxlライブラリのまとめ】
【Pythonライブラリのまとめ】
参考
以上!
コメント