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['購入リスト']
# 1列単位で処理をする
for col in worksheet.iter_cols():
    print(f"[ {col[0].column}列目 ]")
    # 列からセルを1個ずつ取得し、処理をする
    for cell in col:
        print(f"{cell.row}行目:{cell.value}")
    print('------------------------------------------')
# ロードしたExcelファイルを閉じる
workbook.close()

 

【実行結果】

[ 1列目 ]
1行目:ID
2行目:1
3行目:2
4行目:3
5行目:4
6行目:5
------------------------------------------
[ 2列目 ]
1行目:物
2行目:イチゴ
3行目:リンゴ
4行目:ブドウ
5行目:ミカン
6行目:モモ
------------------------------------------
[ 3列目 ]
1行目:価格
2行目:250
3行目:100
4行目:200
5行目:50
6行目:200
------------------------------------------
[ 4列目 ]
1行目:お店
2行目:●×商店
3行目:●×商店
4行目:△△店
5行目:△△店
6行目:××ストア
------------------------------------------
[ 5列目 ]
1行目:購入日
2行目:2019-01-01 00:00:00
3行目:2019-01-02 00:00:00
4行目:2019-01-03 00:00:00
5行目:2019-01-03 00:00:00
6行目:2019-01-04 00:00:00
------------------------------------------

 

【説明】

  • Worksheetオブジェクトのiter_cols()を使うことで列ごとにセルを取得することができます。
  • iter_cols()の引数はiter_cols(min_col=None, max_col=None, min_row=None, max_row=None, values_only=False)であり、min_colで開始列、 max_colで終了列、min_rowで開始行、max_rowを終了行、を指定できます。values_onlyTrueにすることで値があるセルのみ取得できます。
  • 上記のサンプルコードでは引数を指定していないので、デフォルトの値が使用されています。デフォルトではセルに値がある範囲を自動認識してくれているみたいです。
  • Worksheetオブジェクトは「openpyxl.worksheet.worksheetモジュール」内のWorksheetクラスで定義されています。

 

 

 

 

関連情報

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

 

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

 

 

参考

 

 

 

以上!

コメント

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