Python日記

【Python】openpyxlでエクセル連携は超簡単|初めてのworkbookに挑戦

2021年6月5日

python全般 openpyxlを使ってエクセル連携の巻
お悩みさん

Pythonとエクセルを連携させる方法を教えて〜

この記事では、workbookの機能を使って、

Pythonでエクセルにアクセスする方法をお伝えしていきます。

Pythonとエクセルの連携は、驚くほど簡単にできてしまうので、

ぜひ業務に活用してみてください。

クリワン

この記事はこんな方におすすめです!

  • ノンプログラマーだけど、業務の自動化していきたい
  • マーケティング業務でデータ解析をしていきたい
  • ITスキルを身につけて、年収をアップさせたい

この記事で学べること

  1. openpyxlのダウンロード方法
  2. PythonとExelの連携方法
  3. セル情報の取得方法

環境

OSMac 10.15.4
Pythonpython 3.9
仮想環境Poetry
Homebrew8.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"

あえて説明を簡単にするために、上記のスクリプトを書きましたが、

ご自身でいろいろとトライしてみてください。

openpyxlの参考ページはこちらです。

実行結果

最後に、スクリプトを実行して結果を確認してみます。

Hello

シェル上では、Helloが無事に返ってきました。

エクセルデータ(test.xlsx)の方も確認してみます。

解決さん

A1セルに、ちゃんとHelloが記載されてる!

エクセルデータもも更新が確認できました。

まとめ

この記事で学んだこと

  1. openpyxlのダウンロード方法
  2. PythonとExelの連携方法
  3. セル情報の取得方法

エクセルは、スプレッドシートと違い、オフライン環境で使うことができるので、

Google APIのような手間のかかる設定がいらないのが非常にありがたいです。

職場によっては、セキュリティ上の都合で、

Python側にスプレッドシートの権限を与えられないこともあるので、

エクセルとPythonの連携をマスターしておくととても便利です。

参考

より詳しいチュートリアルは、公式ページに掲載されています。

英語ですが、よければこちらも参考にしてください。

-Python日記