「プログラムでエクセルファイルを処理したい」
「PythonでExcelファイルの読み込みに対応したい」
「PythonでExcelファイルの書き込みを行いたい」
このような場合には、openpyxlがオススメです。
この記事では、PythonでExcelを読み書きできるopenpyxlについて解説しています。
本記事の内容
- openpyxlとは?
- openpyxlのシステム要件
- openpyxlのインストール
- openpyxlの動作確認
それでは、上記に沿って解説していきます。
openpyxlとは?
openpyxlとは、Excelファイルの読み込み・書き込みが可能なPythonライブラリです。
処理対象となるファイル形式は、以下となっています。
- xlsx
- xlsm
- xltx
- xltm
openpyxlは、もともとPHPExcelを参考に開発が始まったようです。
PHPExcelは、PHPでエクセルファイルを扱うためのライブラリになります。
そのPHPExcelについては、次の記事で触れています。
PythonでExcelファイルを扱うなら、真っ先にその候補となるのがopenpyxlです。
それぐらい、openpyxlはPython界では確固たる地位を築いています。
以上、openpyxlについて解説しました。
次は、openpyxlのシステム要件を説明します。
openpyxlのシステム要件
現時点(2022年7月)でのopenpyxlの最新バージョンは、3.0.10となります。
この最新バージョンは、2022年5月20日にリリースされています。
openpyxlのシステム要件としては、次の3点を意識すればよいでしょう。
- OS
- Pythonバージョン
- Pillow
それぞれを下記で説明します。
OS
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
Pythonバージョン
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
以下のPython公式開発サイクルとは、少しだけ違います。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
公式開発サイクルと比較すると、次のようにするのがベストでしょう。
- Python 3.6をサポート対象から切り捨てる
- Python 3.10をサポート対象に含める
と言っても、Python 3.10へのインストールは何も問題ありません。
基本的には、Python 3.9で動くならPython 3.10でも動きます。
Pillow
画像を扱う場合に、必要となるPythonライブラリです。
画像を扱う予定がなくても、とりあえずインストールしておくのをオススメします。
Pillowについての詳細は、次の記事で解説しています。
インストールするには、次のコマンドだけでOKです。
pip install pillow
以上、openpyxlのシステム要件を説明しました。
次は、openpyxlのインストールを説明します。
openpyxlのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
Pillowは、インストール済みです。
$ pip list Package Version ---------- ------- Pillow 9.2.0 pip 22.1.2 setuptools 63.1.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、openpyxlのインストールです。
openpyxlのインストールは、以下のコマンドとなります。
pip install openpyxl
openpyxlのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ---------- ------- et-xmlfile 1.1.0 openpyxl 3.0.10 Pillow 9.2.0 pip 22.1.2 setuptools 63.1.0 wheel 0.36.2
依存するパッケージは、思ったより少ないと言えます。
その意味では、既存環境へ容易にopenpyxlを導入できそうです。
以上、openpyxlのインストールを説明しました。
次は、openpyxlの動作確認を説明します。
openpyxlの動作確認
openpyxlでXLSXファイルを作成しましょう
その動作確認のために、次のコードを用います。
from openpyxl import Workbook wb = Workbook() # アクティブなワークシートの取得 ws = wb.active # セル指定によるデータ設定 ws['A1'] = 999 # 行追加 ws.append([1, 2, 3]) # セル指定によるデータ設定 ws['A3'] = "openpyxlの動作確認" # ファイル保存 wb.save("test.xlsx")
上記を実行した結果、test.xlsxが作成されます。
処理は、一瞬で終わります。
test.xlsxをエクセルで確認します。
コードで意図したようにファイルが作成されています。
日本語も問題ありません。
以上、openpyxlの動作確認を説明しました。