
この記事でわかること
今回のテーマは、Pythonのライブラリを用いて、Googleスプレッドシートからデータを取得するテクニックを紹介したいと思います。対象となる読者は、Pythonを少し扱ったことがあるけど活用方法がわからない方、Googleスプレッドシートからデータの取得を自動化したい方を想定しています。
- 【目次】
- pandasライブラリよりcsvファイル形式のデータを扱う。
- gspreadライブラリで、Googleスプレッドシートよりデータを取得する。
①pandasライブラリを使ったxlsxファイルの読み込み
Googleスプレッドシートの操作を紹介する前に、準備運動としてよく使うpandasライブラリを紹介します。pandasライブラリとは、データを効率的に扱うことができるライブラリです。
※pandasのドキュメンテーション(公式サイト)pandasは、2008年にAQR Capital Managementよって開発されたライブラリのようです。現在の世界中の同志たちにより支えられているオープンソースのようです。2015年以降は、NumFOCUS(https://numfocus.org/sponsored-projects)より支援を受けているようです。
pandasの使用例
- Pythonで取り込む「country_data.xlsx」を用意します。

- 以下の通り、3行のプログラムを書きます。プログラムは、上記のExcelファイルを読み込んで、変数に出力する内容になります。
- プログラム実行後、コンソールにはExcelファイルの中身が出力されています。
- 続いて、変数dataの内容をcsv形式ファイルに出力します。
- プログラムを実行後、所定のフォルダにexport_data.csvが出力されています。
以上で、Excelファイルの内容をcsvファイルに出力することができました。
次に、Googleスプレッドシートを操作するgspreadライブラリを操作する手順を紹介します。
②gspreadライブラリを使って、Googleスプレッドシートの操作
gspreadライブラリとは、Googleスプレッドシートを操作できるライブラリです。
例えば、Googleスプレッドシートのシートやセルを参照することで、値の加工や読み取りなど様々な操作ができます。
※gspreadのドキュメンテーション(公式サイト)gspreadライブラリは、GitHubで管理されているフリーで利用できるオープンソースです。
以下の順で手順を紹介します。
- GoogleのプロジェクトAPIアクセスを有効化する。
- Googleスプレッドシートを共有設定する。
- PythonからGoogleスプレッドシートのデータを呼び出す。
最初の説明はPythonを学習するというよりはGoogle APIの利用方法が中心になりますが、ご容赦願います。またGoogle APIの設定手順は、2020年10月20日時点の手順になります。今後、バージョン等が変わった場合は、手順が変わる可能性があります。
GoogleのプロジェクトAPIアクセスを有効化する。
最初の作業として、Googleスプレッドシートを参照できるようにするために、プロジェクトAPIアクセスを作成します。
- Googleコンソールに移動する。
Googleコンソールでは、さまざまなAPIを有効化設定ができます。
ここではプロジェクトAPIを作成し、Google APIとGoogle Sheet APIを有効化します。なお、Googleコンソールを利用するためにはGoogleアカウントを作成している必要があります。
最後に共有ファイルにアクセスするための認証情報の作成を行います。
※Googleコンソール- Googleコンソールに移動したら、「フォルダを作成」をクリックする。

- プロジェクト名を入力する。ここでは、Techblogとしています。

- 作成完了のポップアップが表示されることを確認する。
- リストに「Techblog」が追加されていることを確認する。
- 左上の「Google APIs」をクリックするとサイドバーが出てくるので、ライブラリをクリックする。
- ここからはGoogle Drive APIを有効化するために「Google Drive API」をクリックする。
- 「Google Drive API」を有効化する。
- 有効化すると、画面が切り替わります。
- 次にGoogle sheet APIを有効化するために「Google sheet API」をクリックします。
- 「Google sheets API」を有効化する。
- 有効化すると、画面が切り替わります。
- 各APIがリストに表示されていることを確認する。
Googleスプレッドシートを共有設定する。
次に、Pythonプログラムを実行した際に、Googleスプレッドシートに共有可能なアカウントであることを認識させる手順を実施します。
- 認証情報を作成するために認証情報をクリックする。
- 「+認証情報の作成」→「サービスアカウント」をの順にクリックする。
- サービスアカウントの詳細でサービスアカウント名を入力し、「作成」をクリックする。
- 「ロールの選択」で選択項目を決定する。手順は1~3の通り。

- 認証情報のホーム画面に戻ったら、サービスアカウントの編集ボタンをクリックする。
- 「鍵を追加」をクリックする。
- 「JSON」を選択し、「作成」ボタンを押下する。
- jsonファイルがダウンロードされることを確認する。
上記でダウンロードしたjsonファイルより、”client_email”に記載している”python-techbolg@techblog-293105.iam.gserviceaccount.com”をコピーする。 なお、jsonファイルの内容は機密情報となるため、他人知られないように気をつけましょう。
- Googleスプレッドシートを開いて、シート右上の「共有」ボタンをクリックする。
- 入力欄に、認証情報の作成で用意したclient_emailを入力する。ここで入力したclient_emailはpythonからプログラムを実行する際の認証キーとなります。
- 「送信」ボタンを押下する。
PythonからGoogleスプレッドシートのデータを呼び出す。
- pythonファイルに、以下のソースコードを入力します。

②スプレッドシートのアドレス。取得元は、次のイメージで説明します。
※spyderというアプリで起動しています。
※スプレッドシートのアドレス
- pythonファイルを実行する。(「F5」キーで実行できます。)
以上より、Pythonの活用例を紹介させていただきました。Pythonは外部サービスと連携するライブラリが豊富であるため、外部サービスからデータを取得して、アプリ開発や情報収集が必要となったときは、Pythonを活用する機会があるかもしれません。
長い記事に目を通していただき、ありがとうございました。