Excelからデータ抽出!Python(OpenPyXL)の読み込み方法まとめ

 

★悩み★
・PythonでExcelファイルに記載されたデータの読み込みってできる?
・PythonのOpenPyXLライブラリを用いてExcelを読み込む方法を知りたい。
・そもそもOpenPyXLって何?インストールとか必要なの?



こういった「悩み」に答えます。
 

★本記事の内容★
① OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】
② PythonとOpenPyXLをインストールする手順
③ PythonのOpenPyXLを使った「Excel読み込み方法」のまとめ



これからご紹介する「Excelからデータ抽出!Python(OpenPyXL)の読み込み方法まとめ」を実践したことで、10分以内で「PythonのOpenPyXLでExcelを読み込み、指定したデータを抽出」できました。
 

記事の前半では「OpenPyXLとは何か?」や「PythonとOpenPyXLのインストール手順」を解説します。
記事の後半では「PythonのOpenPyXLを使って、『指定したシート』や『指定した範囲のセル』のデータを読み込み抽出する方法」を紹介します。
 

この記事を読み終えることで、「Excelを開くことなく、Excel内に記載されたデータを抽出できる」状態になります。
 


ちなみに、「OpenPyXLでExcelファイルに書き込みする手順」に関して知りたい方は、以下の記事をご覧ください。
 


 

【PR】この記事には広告を含む場合があります

OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】


「OpenPyXLとは?」に関してご紹介します。
 

OpenPyXLとはどのようなものなのか?に関して説明しますね



OpenPyXLの概要を以下に記載します。
 

★OpenPyXLとは★
OpenPyXLは、Pythonの外部ライブラリです。
OpenPyXLを利用することで、PythonからExcelファイル(xlsx/xlsm/xltx/xltm)を操作(読み込みや書き込み)できます。

参照:OpenPyXLの公式サイト



OpenPyXLのライセンスに関して以下に記載します。
 

★OpenPyXLのライセンスについて★
MITライセンスとなります。
特に制限なく使って良いです。
ただし、著作権表示および本許諾表示を記載する必要があります。
参照:MITライセンスとは?(Wikipedia)



また、OpenPyXLの「ここ数年でどのぐらい活発に開発されているか?」に関する情報は、以下のサイトから確認できます。
参照:OpenPyXLの開発頻度(OpenPyXL公式サイト)
 



以上が、「OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】」となります。
 

現時点で、OpenPyXLの開発頻度は高いので、何かバグが発生した場合でもすぐに修正がされそうです。ですので、安心してOpenPyXLを使えそうです。


 

PythonとOpenPyXLをインストールする手順


「PythonとOpenPyXLをインストールする手順」に関してご紹介します。
 

★PythonとOpenPyXLをインストールする流れ★
手順1:Pythonをインストール
手順2:Pythonの「OpenPyXL」ライブラリをインストール



上記の流れで、「PythonとOpenPyXLをインストール」できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年4月10日
動作確認済み環境:macOS



以降で、上記「PythonとOpenPyXLをインストールする流れ」の各手順に関してご説明します。
 

手順1:Pythonをインストール【OpenPyXLの利用に必要】

「手順1:Pythonをインストール」に関してご説明します。
 

OpenPyXLをインストールするために、Pythonをインストールしましょう。



以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール


 

既にPythonをインストールされている方は、本手順を省略してください。



以上で、「手順1:Pythonをインストール」は完了です。
 

手順2:Pythonの「OpenPyXL」ライブラリをインストール

『手順2:Pythonの「OpenPyXL」ライブラリをインストール』に関してご説明します。
 

PythonでExcelを読み込むために、OpenPyXLをインストールしましょう。



OpenPyXLをインストールするために、「端末」または「コマンドプロンプト」を起動し、以下のコマンドを順に実行しましょう。

$ pip install openpyxl
$ pip list | grep openpyxl
openpyxl (3.0.7)
$ 



コマンンド実行後、「openpyxl(バージョン)」が表示された場合、「正常にopenpyxlをインストールできた」と判断できます。
 

以上で、『手順2:Pythonの「openpyxl」ライブラリをインストール』は完了です。
 

上記の流れで、PythonとExcel読み込みのためのライブラリ「OpenPyXL」をインストールできました。


 

PythonのOpenPyXLを使った「Excel読み込み方法」のまとめ


『PythonのOpenPyXLを使った「Excel読み込み方法」のまとめ』に関してご紹介します。
 

★PythonのOpenPyXLを使った「Excel読み込み方法」のまとめ★
・OpenPyXLでExcelのシート数とシート名を抽出
・OpenPyXLでExcelファイルの指定したシートを抽出
・OpenPyXLでExcelファイルの指定したシート内の列数と行数を抽出
・OpenPyXLでExcelファイルの指定したセルを抽出
・繰り返し処理で「指定した範囲のセルの値」を配列へ格納



PythonのOpenPyXLライブラリを利用することで、上記プログラムを簡単に実装できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年4月10日
動作確認済み環境:macOS



以下のExcelファイル(sample.xlsx)を用いて、以降で、上記『PythonのOpenPyXLを使った「Excel読み込み方法」のまとめ』の各項目に関してご説明します。
 

 

sample.xlsx内に記載されたデータについて


 

OpenPyXLでExcelのシート数とシート名を抽出

「OpenPyXLでExcelのシート数とシート名を抽出」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイル内にあるシート数とシート名を抽出できます。



PythonのOpenPyXLを用いて「Excelファイル内にあるシート数とシート名を抽出する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

book = openpyxl.load_workbook('sample.xlsx') # 読み込みたいExcelのPATH(適宜変更)
print("シート数:" + str(len(book.sheetnames)))
print("シート名一覧")
for sheet_name in book.get_sheet_names():
  print(" " + sheet_name)



上記のプログラムを「openpyxl-get-excel-sheet-list.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-get-excel-sheet-list.pyを実行してください。

$ python openpyxl-get-excel-sheet-list.py 
シート数:4
シート名一覧
 Sheet
 前版の内容
 次版の内容
 環境変数比較
$



上記のように「Excelファイルに記載されたシート名の一覧」が表示された場合、「OpenPyXLでExcelのシート数とシート名を抽出できた」と判断できます。
 

以上が、「OpenPyXLでExcelのシート数とシート名を抽出」となります。
 

OpenPyXLでExcelファイルの指定したシートを抽出

「OpenPyXLでExcelファイルの指定したシートを抽出」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイル内にある指定したシートを抽出できます。



PythonのOpenPyXLを用いて「OpenPyXLでExcelファイルの指定したシートを抽出する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

book = openpyxl.load_workbook('sample.xlsx') # 読み込みたいExcelのPATH(適宜変更)
print(book["前版の内容"].title) # 読み込みたいExcelファイル内のシート名(適宜変更)
print("指定したExcelファイルを抽出しました。")



上記のプログラムを「openpyxl-get-excel-sheet.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-get-excel-sheet.pyを実行してください。

$ python openpyxl-get-excel-sheet.py
前版の内容
指定したExcelファイルを抽出しました。
$ 



上記のように「指定したExcelファイルを抽出しました。」が表示された場合、「OpenPyXLでExcelファイルの指定したシートを抽出できた」と判断できます。
 

以上が、「OpenPyXLでExcelファイルの指定したシートを抽出」となります。
 

OpenPyXLでExcelファイルの指定したシート内の列数と行数を抽出

「OpenPyXLでExcelファイルの指定したシート内の列数と行数を抽出」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイルの指定したシート内の列数と行数を抽出できます。



PythonのOpenPyXLを用いて「OpenPyXLでExcelファイルの指定したシート内の列数と行数を抽出する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

book = openpyxl.load_workbook('sample.xlsx') # 読み込みたいExcelのPATH(適宜変更)
target_sheet = book["前版の内容"] # 読み込みたいExcelファイル内のシート名(適宜変更)
row_num = target_sheet.max_row # 指定したシートの行数を抽出
column_num = target_sheet.max_column # 指定したシートの列数を抽出
print("行数:" + str(row_num) + " 列数:" + str(column_num))
print("指定したシートの行数と列数を抽出しました。")



上記のプログラムを「openpyxl-get-excel-sheet-row_column.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-get-excel-sheet-row_column.pyを実行してください。

$ python openpyxl-get-excel-sheet-row_column.py
行数:5 列数:4
指定したシートの行数と列数を抽出しました。
$ 



上記のように「指定したシートの行数と列数を抽出しました。」が表示された場合、「OpenPyXLでExcelファイルの指定したシートの列数と行数を抽出できた」と判断できます。
 

以上が、「OpenPyXLでExcelファイルの指定したシート内の列数と行数を抽出」となります。
 

OpenPyXLでExcelファイルの指定したセルを抽出

「OpenPyXLでExcelファイルの指定したセルを抽出」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイルのあるシートの指定したセル値を抽出できます。



PythonのOpenPyXLを用いて「OpenPyXLでExcelファイルの指定したシートの指定したセル値を抽出する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

book = openpyxl.load_workbook('sample.xlsx') # 読み込みたいExcelのPATH(適宜変更)
print(book["前版の内容"].cell(row=4, column=2).value) # 読み込みたいExcelのセル(適宜変更)
print(book["前版の内容"]["A1"].value) # 読み込みたいExcelのセル(適宜変更)
print("Excelファイルの指定したセルの値を読み込みました。")



上記のプログラムを「openpyxl-get-excel-cell.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-get-excel-cell.pyを実行してください。

$ python openpyxl-get-excel-cell.py
apple
前版の内容
Excelファイルの指定したセルの値を読み込みました。



上記のように「Excelファイルの指定したセルの値を読み込みました。」が表示された場合、「OpenPyXLでExcelファイルの指定したセルを抽出できた」と判断できます。
 

以上が、「OpenPyXLでExcelファイルの指定したセルを取得するプログラム」となります。
 

繰り返し処理で「指定した範囲のセルの値」を配列へ格納

『繰り返し処理で「指定した範囲のセルの値」を配列へ格納』に関して説明します。
 

PythonのOpenPyXLライブラリを利用することで、繰り返し処理で「Excel内で指定した範囲のセルの値」を配列へ格納できます。



PythonのOpenPyXLを用いて『繰り返し処理で「指定した範囲のセルの値」を配列へ格納』プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

book = openpyxl.load_workbook('sample.xlsx') # 読み込みたいExcelのPATH(適宜変更)
target_sheet = book["前版の内容"] # 読み込みたいExcelファイル内のシート名(適宜変更)
target_range = "A1:D5" # セルの範囲(適宜変更)

# 指定した範囲のセルでloop(繰り返し処理)し、セル値を配列へ格納
for row in target_sheet[target_range]:
  values = []
  for col in row:
    values.append(col.value)
  print(values)

print("指定した範囲のセルの値を配列に格納しました。")



上記のプログラムを「openpyxl-get-excel-loop.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-get-excel-loop.pyを実行してください。

$ python openpyxl-get-excel-loop.py 
['前版の内容', None, None, None]
[None, None, None, None]
['検索用文字列', '項目', '生産者', 'データ']
['applehero', 'apple', 'hero', '100']
['orangetom', 'orange', 'tom', '200']
指定した範囲のセルの値を配列に格納しました。



上記のように「指定した範囲のセルの値を配列に格納しました。」が表示された場合、「OpenPyXLで繰り返し処理で『指定した範囲のセルの値』を配列へ格納できた」と判断できます。
 

以上が、「繰り返し処理で「指定した範囲のセルの値」を配列へ格納」となります。
 

PythonのOpenPyXLを用いることで、上記のようなExcel読み込みを簡単に実現できました。


 

ちなみに、「PythonのOpenPyXLを使って仕事を楽にできないかな?」と言った具体的な使い道を知りたい方には、以下の参考書がお勧めです。
 



動画で学びたい方には、以下がお勧めです。
 

動画でOpenPyXLを学ぶ@Udemy


 

【まとめ】Excelからデータ抽出!Python(OpenPyXL)の読み込み方法まとめ


いかがでしたでしょうか?
「OpenPyXLとは何か?」「OpenPyXLのインストール方法」「PythonのOpenPyXLで様々なExcel読み込み方法」を解説し、以下の悩みを解決しました。 
 

★悩み★
・PythonでExcelファイルに記載されたデータの読み込みってできる?
・PythonのOpenPyXLライブラリを用いてExcelを読み込む方法を知りたい。
・そもそもOpenPyXLって何?インストールとか必要なの?



ぜひあなたも本記事を参考に「PythonのOpenPyXLを使って、Excelを読み込み、必要なデータを抽出」してみてください。

コメント