こんにちは、まさかめです。
一般的な会社ではEXCELやGoogleスプレッドシートなどの表計算ソフトを使用して実績管理をしたり、データ分析をしたりするのではないでしょうか?
そこで、この記事ではPythonを用いてスプレッドシートを操作するために必要な初期設定について解説します。
GCP(Google Cloud Platform)の設定
プロジェクトの作成
まずはGoogle Cloud Platformへアクセスし、新しいプロジェクトの作成を行います。
プロジェクト名はわかりやすければ何でもOKなので、自分の用途に合わせたものをつけましょう。
Google Drive APIの有効化
次にGoogle Drive APIを有効にしていきます。
まず、GCPのサイドバーにあるライブラリをクリックします。
そして、APIライブラリにおける検索窓で”Google Drive API”と打ち込み、該当のものを有効にします。
Google Sheets APIの有効化
次にGoogle Sheets APIを有効にしていきます。
こちらも先程のGoogle Drive APIと同様に、
APIライブラリにおける検索窓で”Google Sheets API”と打ち込み、該当のものを有効にします。
認証情報の設定
ここまでが完了していればGCP上で必要なことは認証情報の設定のみです。
ここまではAPIライブラリでの作業でしたが、
次はサイドバーにある”認証情報”をクリックします。
そして、認証情報を作成をクリックし、サービスアカウントを選択します。
サービスアカウント名は何でも良いので、後で理解しやすい名前にしておきましょう。
サービスアカウント名を入力後、完了をクリックします。
作成が完了したアカウントを選択し、キーというタブから「鍵を追加」を選び、キーのタイプをJSONにして鍵の作成を行います。
ここで作成したJSONファイルは後ほど使用するのでわかるところに保存しておきましょう。
スプレッドシートの設定
python上のプログラムで操作したいスプレッドシートやドライブのフォルダに対して、先程作成したJSONファイルに記載されているclient_emailという項目に存在するアドレスの権限を付与しておきましょう。
Pythonのプログラム実装
ここまでが必要な事前設定となります。
あとはpythonのプログラムを作成していきましょう。
まず、以下2ライブラリをインストールします。
$ pip install gspread
$ pip install oauth2client
今回のプログラムは動作を確認するためのものなので、
A1セルに”Hello World!!”と出力する簡単なプログラムを使用します。
import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('認証情報設定でダウンロードしたJSONファイル', scope)
gc = gspread.authorize(credentials)
spreadsheet = '操作したいスプレッドシートID'
worksheet = gc.open_by_key(spreadsheet).sheet1
worksheet.update_cell(1,1, 'Hello World!!')
これでpythonからスプレッドシートを操作できると思います。