OpenPyXLを使用すると、PythonからExcelを操作することができます。
本記事では、OpenPyXLを使用したエクセルデータを配列として出力する方法について、詳しくご説明します。
エクセルデータを配列として出力
セル範囲を指定して出力
以下データが入ったExcelファイルについて、指定セル範囲のデータを配列として出力する方法をご紹介します。
セル範囲をA1からC6で指定して、配列データを出力してみます。
#input
import openpyxl
wb = openpyxl.load_workbook("animal.xlsx")
ws = wb.worksheets[0]
for row in ws["A1:C6"]:
values = []
for col in row:
values.append(col.value)
print(values)
#output
['No.', '名前', 'Name']
[1, '犬', 'dog']
[2, '兎', 'rabbit']
[3, '牛', 'cow']
[4, '馬', 'horse']
[5, '狐', 'fox']
先頭列にデータがある行のみ出力
以下データが入ったExcelファイルについて、先頭列(A列)にデータがある行のみ、配列として出力する方法をご紹介します。
「min_row=2」とすることで、先頭列にデータがない行は「None」となります。
そこで「None」の行を出力しないことで、先頭列にデータがある行のみ、配列として出力してみます。
#input
import openpyxl
wb = openpyxl.load_workbook("animal001.xlsx")
ws = wb.worksheets[0]
for row in ws.iter_rows(min_row=2):
if row[0].value is None:
continue
values = []
for col in row:
values.append(col.value)
print(values)
#output
[1, '犬', 'dog']
[3, '牛', 'cow']
[5, '狐', 'fox']
空欄がない行のみ出力
以下データが入ったExcelファイルについて、空欄がない行のみ、配列として出力する方法をご紹介します。
「min_row=2」とすることで、先頭列にデータがない行は「None」となります。
そこで「None」の行を出力しないことで、先頭列にデータがある行のみ、配列として出力してみます。
#input
import openpyxl
def is_empty(cell):
return cell.value is None or not str(cell.value).strip()
wb = openpyxl.load_workbook("animal002.xlsx")
ws = wb.worksheets[0]
for row in ws.iter_rows(min_row=2):
if any(is_empty(c) for c in row):
continue
values = []
for col in row:
values.append(col.value)
print(values)
#output
[3, '牛', 'cow']
A~C列まで、すべてのデータがある行のみ出力されました。
まとめ
この記事では、OpenPyXLを使用したエクセルデータを配列として出力する方法について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!