PythonでExcelを操作する「openpyxl」の基本操作~作成・読込・書込み~

※社外のコラムニストによる記事です。Python関連の情報をお伝えします。

「シゴトがはかどるPython自動処理の教科書」(著:クジラ飛行机様/マイナビ出版)を利用して、Pythonを使った自動化について学んでいきます。

前回からChapter2「Excel作業を自動化しよう」に入り、Excelの操作をするパッケージ「openpyxl」をインストールしました。今回は実際に、openpyxlを利用して、基本的な動作(ファイルの作成と読込)を確認してみます。

目次

Excelを操作する前に念のため確認

書籍の内容とは多少前後してしまいますが、まずプログラムの動作確認に入る前に、Excelの基本を確認します。Excelファイル全体をワークブック、各シートをワークシート、行(ロウ)、列(カラム)があり、入力できる部分をセルと呼びます。

ついでにopenpyxlライブラリで出来ることも振り返っておきます。

<openpyxl>

Excelファイルの作成・保存、既存ファイルの編集、データの読み込み・書き込み・コピー・削除などの様々な操作ができるPythonライブラリ。書式の変更や罫線、セルの結合・分割、画像・グラフ・コメントの挿入、シートの保護などの操作もできる。

openpyxl公式サイト:https://openpyxl.readthedocs.io/en/stable/

Excelファイルを作成する

では、Excelの仕組みを確認したので、ここから実際にopenpyxlを使ってみます。テキストからサンプルコードを引用します。

このプログラムでは、

  1. openpyxlを使って、ワークブックを新規作成する(②)
  2. ワークシートの情報を取得する(③)
  3. 取得したワークシートのセルA1に「こんにちは」を入力する(④)
  4. hello.xlsxという名前でExcelファイルを保存する(⑤)

という動作が行われます。

————————

P.42

# ライブラリを取り込む — (*1) import openpyxl as excel   # 新規ワークブックを作る — (*2) book = excel.Workbook()   # アクティブなワークシートを得る — (*3) sheet = book.active   # A1のセルに値を設定 — (*4) sheet[“A1”] = “こんにちは”   # ファイルを保存 — (*5) book.save(“hello.xlsx”)

プログラムを実行すると、プログラムと同じフォルダに「hello.xlsx」というファイルが生成されます。そして、Excelでこのファイルを開くと「A1」に「こんにちは」と設定されていることを確認できます。

————————

①のimportで呼び名として[as excel]とされていますが、これは任意です。別名でもOKです。
③のアクティブなワークシートとは、最後に開いたシートです。
④の保存では、saveメソッドを利用します。

実際に実行して出来たのがこちら。ファイルの作成場所は指定してあげればほかの場所でもOKです。

Excelファイルを読み込んでみる

さて次に、既存のExcelファイルを読み込む方法です。先ほどのExcelファイルのA1に記述された「こんにちは」の文字を表示します。

————————

P.44

import openpyxl as excel   # ワークブック(Excelファイル)を開く — (*1) book = excel.load_workbook(“hello.xlsx”)   # 先頭のワークシートを取り出す — (*2) sheet = book.worksheets[0]   # A1のセルの値を得る — (*3) cell = sheet[“A1”]   # 読み出した結果を画面に出力 — (*4) print(cell.value)

————————

これをIDLEなどで実行すると、

と表示されます。

②ではどのワークシートを呼び出すかを[n]で指定しますが、ここでは[0]になっていますので、先頭にあるもの(=Sheet1)が指定されています。Sheetの順番は0から数えて何番目にあるかで指定されるそうなので、例えばSheetが3つあって、Sheet3を指定したいなら[2]と記述することになります。

ちなみにExcelファイルを開きっぱなしで実行すると[PermissionError: [Errno 13] Permission denied: ‘ファイル名’]が表示されます。これはExcelが読み取り専用の場合でも発生するそうです。

openpyxlの基本まとめ

というわけでopenpyxlでのファイル作成、読込の基本の記述をまとめます。

ファイルの新規作成変数名 = openpyxl.Workbook()
既存ファイルの読み込み変数名 = openpyxl.load_workbook(“ファイル名”)
アクティブなシートの取得sheet = 変数名.active
n番目のシートの取得sheet = 変数名.worksheets[n]
シート名を指定して取得sheet = 変数名[シート名]
シートへ値を書き込むsheet[“セル”] = “値”
シートの値を読むprint(sheet[“セル”].value)
Excelファイルの保存変数名.save(“ファイル名”)

シートの書き込みの書き方はバリエーションがあるということで、この後の内容でほかの記述方法も学んでいくとのことです。

それではきりが良いのでこちらで終了です。今回もお付き合いいただき、ありがとうございました。

Pythonの自動化で業務の効率化を図りたい方は、グローバルウェイに依頼してみてはいかがでしょうか?興味がある方は以下をご覧の上、是非お問い合わせください。

あわせて読みたい
Pythonによる業務の自動化ソリューション このページではPythonを活用した業務の自動化ソリューションをご紹介します。 【お客様の課題】 以下のような課題をお持ちのお客様にお勧めのソリューションです。 ルー...

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!
目次