Pythonで行ごとにセルを操作する(openpyxl)

ノウハウ
スポンサーリンク

 

  

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_onlyTrueにすることで値があるセルのみ取得できます。
  • 上記のサンプルコードでは、1行目はカラム名が記載されているので、2行目を開始行にしています。
  • Worksheetオブジェクトは「openpyxl.worksheet.worksheetモジュール」内のWorksheetクラスで定義されています。

 

 

 

 

関連情報

【openpxxlライブラリのまとめ】

 

【Pythonライブラリのまとめ】

 

 

参考

 

 

 

以上!

コメント

タイトルとURLをコピーしました