at backyard

Color my life with the chaos of trouble.

Pythonを使って指定した列をリストで取得する方法(openpyxl利用)

openpyxlを使って縦一列の値をリストで取得する方法

PythonExcelを扱う際にopenpyxlを使うケースは多いが、今回はそんなopenpyxlに関する備忘録をこちらに書き残す。

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.9 documentation

表題の通り、openpyxlを用いて指定したワークシートの縦一列のみを取得するサンプルについて書く。
取得した値はリスト形式で取得するようにしている。

import openpyxl

file_path = "Excelのファイルパス"
sheet_name = "対象のシート"

wb = openpyxl.load_workbook(file_path)
ws = wb[sheet_name]

# B列をすべて取得(指定はBでもbでも良い)
result_list = list(map(lambda c: c.value, ws["b"]))

print(result_list)
# => [ "foo", "bar", ... ]

ws[列]で取得可能

上に書いたとおりws[列] で対象の列をすべて取得することができる。 それをlistやmapを通してリストにした形である。

なお、下記のようにそのまま取得した場合、

print(ws["B"])

tuple形式で出力される。

(<Cell 'シート名'.B1>, <Cell 'シート名'.B2>, ...)

以上です。