Pythonとエクセルを連携させる方法を教えて〜
この記事では、workbookの機能を使って、Pythonでエクセルにアクセスする方法をお伝えしていきます。
Pythonとエクセルの連携は、驚くほど簡単にできてしまうので、ぜひ業務に活用してみてください。
- openpyxlのダウンロード方法
- PythonとExelの連携方法
- セル情報の取得方法
環境
OS | Mac 10.15.4 |
Python | python 3.9 |
仮想環境 | Poetry |
Homebrew | 8.0.19 Homebrew |
【下準備①】openpyxlのダウンロード
まずはPythonでエクセル操作を使えるようにするため、Pythonのライブラリにopenpyxlをインストールします。
pip install openpyxl
poetryを使っている方は、以下のコマンドを実行してください。
poetry run pip install openpyxl
以下のような表示がでれば、インストール完了です。
Collecting openpyxl
Downloading openpyxl-3.0.7-py2.py3-none-any.whl (243 kB)
|████████████████████████████████| 243 kB 2.1 MB/s
Collecting et-xmlfile
Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Installing collected packages: et-xmlfile, openpyxl
Successfully installed et-xmlfile-1.1.0 openpyxl-3.0.7
これでPyhon側の下準備ができました。
【下準備②】Pythonスクリプトとエクセルファイルの準備
続いては、フォルダを準備します。
空のPythonファイルと、エクセルデータを、フォルダに入れています。
Pythonファイル:excel.pyを作成しています。
excelファイル:test.xlsxを作成しています。
どちらも任意の名前で問題ありません。
この2つを分かりやすく同じフォルダで管理して作成をしていきます。
Pythonとエクセルのの連携
準備ができたので、実際にファイルの作成に取り掛かります。
といっても、非常に簡単な内容です。
仕様は、エクセルのA1セルに、Pythonを使って”Hello”を書き込むというだけの
とっても簡単なコードを今回は書いていきます。
スクリプトの中身
import openpyxl as op
excelfile = op.Workbook()
write = excelfile.active
write["A1"].value = "Hello"
print(write["A1"].value)
excelfile.save("test.xlsx")
今回はこれで完了です!
workbookの解説
エクセルを使う際は、Workbookの機能を使います。
今回は、excelfileという名前をつけているので、基本的には、excelfile.○○という処理をしています。
ちなみに、お分かりの通り、以下は、A1のセルに、”Hello”を記述する命令です。
write["A1"].value = "Hello"
あえて説明を簡単にするために、上記のスクリプトを書きましたが、ご自身でいろいろとトライしてみてください。
実行結果
最後に、スクリプトを実行して結果を確認してみます。
Hello
シェル上では、Helloが無事に返ってきました。
エクセルデータ(test.xlsx)の方も確認してみます。
A1セルに、ちゃんとHelloが記載されてる!
エクセルデータもも更新が確認できました。
まとめ
エクセルは、スプレッドシートと違い、オフライン環境で使うことができるので、Google APIのような手間のかかる設定がいらないのが非常にありがたいです。
職場によっては、セキュリティ上の都合で、Python側にスプレッドシートの権限を与えられないこともあるので、エクセルとPythonの連携をマスターしておくととても便利です。
参考
より詳しいチュートリアルは、公式ページに掲載されています。
英語ですが、よければこちらも参考にしてください。
コメント