今回、PythonからGoogleスプレッドシートにデータを書き込む方法について解説します。
Googleスプレッドシートにデータを書き込みするには、Google Sheets APIを使います。
この記事はこんな人におすすめ!
- Googleスプレッドシートを開かずにデータを書き込みたい人
- Pythonを一通り学習し終わり、活用方法を探している人
- Google Sheets APIの使い方を知りたい人
それでは始めていきましょう!
事前準備
PythonからGoogleスプレッドシートを操作するには、Googleが公開しているGoogle Drive APIとGoogle Sheets APIを利用する必要があります。
そのため、Pythonスクリプトを作成する前に以下の事前準備が必要となります。
- Google Cloud Platformでプロジェクトを新規作成する
- Google Drive APIを有効化する
- Google Sheets APIを有効化する
- 秘密鍵を生成する
- スプレッドシートの編集権を秘密鍵所有者に与える
- Pythonのgspreadライブラリをインストールする
やることが一杯ですね。1つずつ実施していきましょう!
Google Cloud Platformでプロジェクトを新規作成する
Google Drive APIとGoogle Sheets APIは、Google Cloud PlatformというGoogleが提供するクラウドコンピューティングサービスで有効化することができます。
これらを有効化するには新規プロジェクトを作成しなければいけません。
Google Cloud Platformのページを開き、左上のバーを選択して新しいプロジェクトを選択しましょう。
プロジェクト名を記入して作成ボタンを押しますと、新規プロジェクトが作成できます。
Google Drive API / Google Sheets APIを有効化する
続いてGoogle Drive APIとGoogle Sheets APIを有効化します。
「APIとサービス」→「ライブラリ」を選択します。
Google Drive APIとGoogle Sheets APIを検索し、有効にするボタンを押します。
有効になったか確認するには「APIとサービス」→「有効なAPIとサービス」をクリックします。
Google Drive APIとGoogle Sheets APIがリストに追加されていればOKです。
秘密鍵を生成する
PythonからGoogleスプレッドシートを編集するために秘密鍵を作ります。
Google Sheets APIの「認証情報」タブから「認証情報を作成」→「サービスアカウント」をクリックして下さい。
サービスアカウント名を入力した後、「作成して続行」ボタンを押します。
アクセス権付与について問われますので、オーナーにアクセス権を与えて下さい。
続いて完了ボタンを押します。
サービスアカウントが一覧に追加されたのが確認出来ると思います。
ここから秘密鍵を生成する作業です。
追加したサービスアカウントを選択し、「キー」タブの「鍵を追加」→「新しい鍵を作成」をクリック。
キーのタイプが問われますので「JSON」を選択し、「作成」ボタンを押します。
JSON形式の秘密鍵がダウンロード出来ます。
秘密鍵は再発行出来ないので絶対に無くさないように保存して下さい。
スプレッドシートの編集権を秘密鍵所有者に与える
スプレッドシートの編集権を秘密鍵所有者に与えます。操作するGoogleスプレッドシートを開き、「共有」ボタンを押して下さい。
ユーザーやグループと共有のダイアログボックスが現れますので、ユーザーやグループを追加の欄にJSONファイルの「client_email」に記載されているアドレスを入力します。
ユーザーが追加されていることを確認し、「送信」ボタンを押します。
Googleスプレッドシートの編集権付与が完了です。
Pythonのgspreadライブラリをインストールする
Pythonには「gspread」というGoogleスプレッドシートを操作する便利なライブラリがあります。
以下のコマンドを打ち、gspreadをインストールしましょう。
pip install gspread
これでPythonからGoogleスプレッドシートを操作する準備が整いました。
PythonからGoogleスプレッドシートにデータを書き込むスクリプト
PythonからGoogleスプレッドシートにデータを書き込むサンプルスクリプトを用意しました。
1行1列目に「Pythonから入力」という文字列を書き込むシンプルなスクリプトです。
import gspread
key_name = '**************.json'
sheet_name = 'Google_Sheets_API_test'
gc = gspread.service_account(filename= key_name)
wks = gc.open(sheet_name).sheet1
wks.update_cell(1, 1, 'Pythonから入力')
「key_name」には、ダウンロードしたJSON形式の秘密鍵ファイルを指定してください。
「sheet_name」には、Googleスプレッドシートのファイル名を指定します。
update_cell()はGoogleスプレッドシートのセルにデータを書き込む関数です。
第1引数に行、第2引数に列、第3引数に書き込むデータを設定します。
このPythonスクリプトを実行すると
Googleスプレッドシートの1行1列目に「Pythonから入力」と書き込まれます。
まとめ
PythonからGoogleスプレッドシートにデータを書き込む方法について解説しました。
作業を復習しますと
- Google Cloud Platformでプロジェクトを新規作成する
- Google Drive APIを有効化する
- Google Sheets APIを有効化する
- 秘密鍵を生成する
- スプレッドシートの編集権を秘密鍵所有者に与える
- Pythonのgspreadライブラリをインストールする
- gspreadライブラリ update_cell()関数でセルにデータを書き込み
でした。
みなさんのPython学習のお役に立てたなら幸いです。
独りでPython学習するのは大変だなと思う方は、書籍やスクールを活用するのも手です。