見出し画像

【Python入門】エクセルをPythonで操作する1【Googleドライブ】

▼この記事を読んでできるようになること

・Pythonの扱い方がわかるようになる。
・WEBブラウザ上でPythonでデータを扱うことができる、Google Colaboratoryの扱い方がわかるようになる。
・Pythonでエクセルデータの扱い方がわかるようになる。

▼達成したいこと

・エクセルをPythonで操作する。
・ローカル環境構築が不要なGoogleのサービスを利用する。
・複数のエクセルから情報を収集する。
・収集したデータを使って新しいエクセルデータを作る。

▼モチベーション

・Pythonを使ってエクセルを操作してみたい。
・ローカル環境に依存しないブラウザ上で操作して、再現性を高めたい。
・エクセルは誰でも扱えると思うし、たくさんのデータを眠らせている人はたくさんいると思う。有効活用できるようにしてもらえたら幸いです。

▼具体的なタスク

・Google Colaboratory(以下コラボ)を起動する。
・エクセルデータをGoogleDriveにアップロードする。
・コラボにエクセルデータを読み込む。

▼実装

▽コラボを起動する。

スクリーンショット 2020-12-16 22.26.08

Googleドライブにアクセスし、
[新規+]→[その他]→[Google Colaboratory]
をクリック。

▽起動したコラボに名前をつける。

スクリーンショット 2020-12-16 22.26.24

スクリーンショット 2020-12-16 22.27.27

適当な名前をつける。

▽Pythonが書けるか試す。

スクリーンショット 2020-12-16 22.28.10

print('エクセルを操作します')

Pythonは、
print('文字')
で、文字を出力することができる。
簡単に、スッキリと書けるのが、Pythonの特徴だ。

コラボは、
[shiftキー] + [enterキー]
で、コードを実行できる。
コードの左側の[▷(実行)]ボタンを押しても、実行される。

▽変数や関数も試す。

スクリーンショット 2020-12-16 22.48.12

もちろん書ける。
コラボは複雑なWEBアプリを構築するのには向かないが、データ分析や、作業の自動化には、大変強力なツールとなる。
これが無料で使えるのだから、本当にありがたい。

!注意!
Pythonはインデントが非常に重要。
インデントとは、一行ごとの頭の字下げのことです。
しかし、コラボのバグか、設定が悪いのか、インデントが正常に見えません。
[ツール]→[設定]→[エディタ]→[インデント幅]
から設定できるようなのですが、見た目では反映されたようには見えません。
解消法がわかり次第、更新します。

▽Googleドライブにエクセルファイルをアップロードする。

本題。
エクセルファイルをアップロードします。

スクリーンショット 2020-12-16 22.56.45

左のメニュータブから[ファイル]をクリック。

スクリーンショット 2020-12-16 22.56.52

[ドライブをマウント]をクリック。

スクリーンショット 2020-12-16 22.57.00

許可します。

スクリーンショット 2020-12-16 22.57.12

自分のGoogleアカウントを選択し、連携させます。
(画像は、個人情報を隠しています)

スクリーンショット 2020-12-16 22.57.22

スクリーンショット 2020-12-16 22.57.33

ドライブがマウントされて、コラボからGoogleドライブへ接続できるようになりました。

続いて、ドライブにアクセスして、エクセルファイルをアップロードします。

スクリーンショット 2020-12-16 22.57.46

[新規+]をクリックし、[フォルダ]をクリック。

スクリーンショット 2020-12-16 22.57.58

[excel]フォルダを作成しました。クリックして、フォルダに移動します。

スクリーンショット 2020-12-16 22.58.37

ブラウザにエクセルファイルをドラッグ&ドロップして、ドライブにアップロードします。

スクリーンショット 2020-12-16 22.59.07

コラボに戻り、[ドライブのマウント]の左隣にある[更新]ボタンをクリック。
ブラウザの更新ボタンではないので、注意。
すると、先ほどアップロードしたエクセルファイルが見えます。

常日頃から、エクセルファイルをGoogleドライブで管理すれば、手間が省けそうです。
Googleドライブの無料プランは、15GBが上限。(2020年12月現在)
普通の使い方であれば、必要十分。

▽コラボでエクセルファイルを読み込み、Pythonで扱えるようにする。

このままでは、まだ、Pythonでは扱えない。
そのため、コラボに読み込む必要がある。

スクリーンショット 2020-12-16 23.16.08

import openpyxl

と打ち込み、[enterキー]を押す。
お試しで実行していたプログラムは、削除した。
消したいプログラムが書かれたセルを選択し、右側に出てくるゴミ箱マークを押すと、削除ができる。

さて、上記はいったい、何をやっているのだろうか?

import は、拡張ライブラリを読み込むためのもの。
Pythonには、

1. あらかじめ搭載されている機能
2. 準備されてはいるが、読み込むことで使える機能
3. 準備されておらず、外部サイトからインストールして、読み込むことで使える機能

と言うのがある。

お試しで実行した、print('文字列') は、1。
あらかじめ搭載されていて、読み込むことなく使用できる機能。

2には、シェルスクリプトをPythonで扱うための shutil(シェルユーティル) や、ブラウザを開くための webbrowser などがある。
これらにPythonスクリプトがアクセスし、使えるようにするには、
import XXXX 
と指定して、読み込む必要がある。
とてもお手軽に、便利な機能を使うことができる。

3は、Pythonに搭載はされていない、第三者が作成した便利機能。
ディープラーニングをお手軽に使用することができる PyTorch や、複雑なWEBアプリを簡単に作成することのできる Django などがこれにあたる。
これらを使用するには、単純に import すれば良いわけではない。
パソコンにないものを入れるわけだから、インターネットからダウンロードする必要がある。
pip install XXXX
とコマンドを打ち込み、インストールしてから、Pythonスクリプトに import XXXX と指定して、読み込む。

今回の openpyxl ライブラリは、3に該当する、サードパーティのライブラリだ。
しかし、なんと嬉しいことに、コラボにはあらかじめ openpyxl が搭載されている。
コラボは、こういったように、便利で使用頻度の高いライブラリを、あらかじめインストールして、すぐに使えるようにしてくれている。
ありがたい限り。

インポートができたので、早速エクセルファイルを読み込んでみよう。

スクリーンショット 2020-12-16 23.48.59

読み込むエクセルファイルの右側にある3点リーダをクリックし、[パスをコピー]する。
パスというのは、ファイルやフォルダの場所のこと。
コラボでは、
/contents/drive/...
のような形で表示される。

スクリーンショット 2020-12-16 23.50.26

excel_file_1 = openpyxl.load_workbook('/content/drive/MyDrive/excel/2020年11月.xlsx')

一気に、プログラミングらしくなってきた。
ここでやっていることは、

・エクセルファイルを入れておくための箱(変数)を用意する。
・import した openpyxl ライブラリの load_workbook() という機能を使えるようにする。
・読み込みたいエクセルファイルの場所を、 load_workbook() に教える。
・Pythonが openpyxl の load_workbook() 機能を使って、パスで指定したエクセルファイルを読み込んで、変数にエクセルファイルを入れて、扱えるようにした。

という訳だ。

これで、Pythonが自由にエクセルファイルを扱うことができる。

次回からは、読み込んだエクセルファイルを操作して、さまざまに変形し、新しいエクセルファイルを作って書き出す、というところまでやりたいと思う。

下記のように、エクセルのセルに書かれた['取引先']などを取得することができるようになる。

スクリーンショット 2020-12-16 23.57.16

次回もぜひ、一緒にPythonで遊べることを願っている。

この記事が気に入ったらサポートをしてみませんか?