みなさんこんにちは。zak-papaです。
今回は、「Excel」と同じような表計算ソフトの「Google スプレッドシート」を操作する「gspread」の使い方について説明したいと思います。
「Excel」を操作する「OpenPyXL」の操作方法についてはこちら。

「OpenPyXL」はインストールしてすぐに使用できましたが、「gspread」などのGoogleの各種サービスを扱う場合はインストールするだけでは足りず、もう一手間設定が必要になります。
なので、今回は「gspread」の「初期設定」について説明したいと思います。
設定完了後はこちらの記事で基本的な操作方法をご確認いただければと思います。

目次
「Google Cloud Platform」を設定しよう
まずは下記から「Google Cloud Platform」の設定を行います。
設定はたったの3つです。順番に見ていきましょう。
- 新しいプロジェクトの作成
- 2つ(Drive, Sheets)のAPIの有効化
- 認証情報の設定
「新しいプロジェクト」を作成する
このような画面が開いたら、「プロジェクトの選択」「新しいプロジェクト」の順にクリックします。
「プロジェクト名(今回は「spreadsheet-sample」としました)」を入力し「作成」をクリックします。
無事新規プロジェクトの作成が完了しました。
「2つのAPI」を有効にする
続いて、2つのAPI(「Google Drive API」「 Google Sheets API」)を有効にしていきます。
「ライブラリ」または「+ APIとサービスを有効化」をクリックします。
検索もできますが、少し下にスクロールしたら2つ出てくるので順にクリックします。
「有効にする」ボタンをクリックします。
2つのAPIが下記のように表示されていれば完了です。
「認証情報」を設定する
最後に「認証情報」を設定します。画面左側にある「認証情報」をクリックします。
「認証情報を作成」「サービスアカウントキー」の順にクリックします。
ご自身の好きなアカウント名(今回は単純に「python」としました)を入力します。
その他は赤枠で囲ったままに設定してもらえれば大丈夫です。最後に「作成」ボタンをクリックします。
「秘密鍵(JSONファイル)」が作成されます。大切な情報なので無くさないようにしましょう。
また、ファイル名が長いので好きなファイル名に変更しても問題ありません。
(「spreadsheet-sample.json」と変更しました。)
「サービスアカウントキー」に表示がされていれば設定完了です。
「スプレッドシート」を設定しよう
「スプレッドシート」を新規作成する
今度は「スプレッドシート」側の設定を行います。
まずはPythonから読み書きできる「スプレッドシート」を準備しましょう。Google Driveを開き、左上の「新規」から「Google スプレッドシート」を開きます。
左上の「タイトル」を変更しましょう。(「spreadsheet-sample」と変更しました。)
「スプレッドシート」の"共有"設定をする
「スプレッドシート」を読み書きするのは「Pythonさん」なので、Pythonさんとシートを共有する必要があります。
シートを共有するには、スプレッドシート右上の「共有」ボタンをクリックします。
Pythonさんの「メールアドレス」を入力し、「編集者」の権限を設定して「送信」をクリックします。
Pythonさんの「メールアドレス」は、取得した秘密鍵(JSONファイル)の「 "client_email": 」の後に記載されています。
これで設定完了です。
「Python」から読み書きする準備をしよう
「作業ディレクトリ・ファイル」を準備する
今回はデスクトップ上に「gspread」ディレクトリ(フォルダ)を作成し、その中に「gspread_practice.py」ファイルを作成して作業していきます。
私の動作環境は次の通りです。ご自身の使い慣れているものをお使いいただければと思います。
Windowsでも同じように動作すると思います。
OS | macOS Catalina 10.15.3 | Version | Python 3.7.4 |
エディタ | Visual Studio Code | ブラウザ | Google Chrome |
ディレクトリ | Desctop/gspread | ファイル | gspread_practice.py |
また、取得した「秘密鍵(JSONファイル)」も同じディレクトリ内に入れておきましょう。
「gspread」をインストールする
上記準備が完了したらターミナルで「gspread」をインストールします。
また、同時に「oauth2client」もインストールしましょう。「oauth2client」はGoogleの各種APIへアクセスするためのライブラリです。
1 2 |
$ pip install gspread $ pip install oauth2client |
次のように表示されていればインストール完了です。
インストールが完了したら、「gspread」と「oauth2client」を「インポート」します。
その後にも数行記述することになりますが、特に深入りせず下記のコードをそのまま貼り付けていただければと思います。詳しい内容を知りたい方は下記をご確認いただければと思います。
・gspread_Using OAuth2 for Authentication
・Google_Using OAuth 2.0 to Access Google APIs
ただし、7行目には取得した「秘密鍵(JSONファイル)」の「ファイル名(私の場合は「spreadsheet-sample.json」)」を入力してください。
1 2 3 4 5 6 7 8 |
import gspread from oauth2client.service_account import ServiceAccountCredentials scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] # 秘密鍵(JSONファイル)のファイル名を入力 credentials = ServiceAccountCredentials.from_json_keyfile_name('spreadsheet-sample.json', scope) gc = gspread.authorize(credentials) |
上記のコードは「スプレッドシート」を操作する際に毎回同じ内容のものになるので、何か処理する際は上記のコードを貼り付けた上でどんどんコードを書いていただければと思います。
終わりに
以上、Pythonからスプレッドシートを扱うための「初期設定」が完了しました。
基本的な操作は下記の記事で説明していますので、先ほど貼り付けたコードの後にスプレッドシートを操作するコードを書いていきましょう。

以上となります。最後まで読んでいただきありがとうございました!