過去に「Python インストール」記事で、プログラム言語「Python」をインストール不要で学習できる環境「Google Colaboratory」(略称:Colab)を少しだけご紹介しました。
パソコンなどの上で Webブラウザを使って実行させるわけで、「Python」でどんなふうに動くのか試してみたい方にはお薦めのものです。

今回は、Excelの表データを読み出したりする操作をご紹介します。

PythonでExcelファイルを操作するためのライブラリには「OpenPyXL」や「Pandas」などが有名ですが、今回は「OpenPyXL」を使ってみます。

「Google Colaboratory」は Google Drive上で動作させますので、Webブラウザで公式サイトにアクセスし、右上の「ログイン」をクリックして Googleアカウントでログインしてください。

 

対象とする ExcelブックがローカルPC上にあるときは、そのセッション内または Google Driveにアップロードします。
上図の左側メニューの「ファイル」アイコンをクリックすると、下図のようにメニューが変わります。

 

その上部に並ぶメニューの一番左の「セッション ストレージにアップロード」をクリックし、Excelブックを選択します。
今回試してみる Excelブック「sample01.xlsx」の「Sheet1」シートには下図のような表データが含まれています。

 

アップロードすると「注: アップロードしたファイルはランタイムのリサイクル時に削除されます。」という注意書きが現れます。
Colabは通常、最長で 12時間実行できますが、アイドル状態(何も操作しない状態)が続くとそれよりも短くセッションが終了します。

さて、いよいよ Colabで Excelブックを操作します。
Colabには「OpenPyXL」ライブラリがインストールされているので、インストールコマンドは不要です。
まずは、OpenPyXLライブラリを読み込みます。
右側画面の上部にある「+コード」をクリックし、細長い入力部分「コードセル」に以下のコードを入力してみてください。

import openpyxl as op
# 既存Excelブックの読み込み
filename = "sample01.xlsx"
wb = op.load_workbook("sample01.xlsx")
# シート名
ws = wb['Sheet1']
# シート内のデータを読み出す
for row in ws.iter_rows(min_row=1, max_col=ws.max_column, max_row=ws.max_row, values_only=True):
  print(row)


 

上記コード中「#」から始まる行はコメント行なので実行されませんので、自由に書き入れてください。

入力出来たら、コードセルの左端にある実行ボタンまたは [Ctrl]+[Enter]キーを押して実行させてみましょう。
コードセルの下部に実行結果が表示されます。(下図)

 

ここまでは「Colabへようこそ」というページでやってみましたが、練習とは言え、毎回コードセルにコードを書き込んで実行してみるのは面倒ですね。
Colabのコードをあなたの Google Driveに保存すれば、より簡単に試すことができます。
なお、Google Drive上にその Excelブック「sample01.xlsx」を保存しておき、[ファイル]メニューの 3番め「ドライブをマウント」すれば、いちいちブックをアップロードしなくとも試せますが、ここではその方法はスキップします。

Google Driveを開き、[+ 新規]ボタンから [その他]-[Google Colaboratory]を選択すると「Untitled0.ipynb」といった名前で新しいノートブックが作成されます。
その名前部分をクリックすれば名前が変更できます。
そして、先ほどと同様に、ローカルPCにある Excelブック「sample01.xlsx」をアップロードします。
コードセル内に上記のコードを入力し、問題なく実行できることを確認してください。

Google Drive上ではこの Colabのノートブックも自動的に保存されますので、次回に改めてコードを入力しなくても復習できます。

それでは、少しコードを変更してみましょう。
最後の行を「print(row[1])」として実行してみると、表データの 1列めが表示されます。
また、最後の 3行を以下のコードに変更すると人数が数えられます。

# 人数を数える
cnt = 0
for row in ws.iter_rows(min_row=2, max_col=ws.max_column, values_only=True):
  cnt += 1
print(cnt)

もっとも、単に人数を数えるだけなら「print(ws.max_row-1)」でよいですが‥‥。

今回の例は簡単過ぎてあまり役に立たないかもしれませんが、この後は実行したい処理を「OpenPyXL」ライブラリのリファレンスを参照してコードを書いてみてください。
このリファレンス以外にも「OpenPyXL」とネット検索すればたくさんの解説記事が見つかります。