ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

python でスプレッドシートを操作する際の準備について

python で Google のスプレッドシートを操作する際の手順をまとめてみました。

Google Cloud Platform の設定

Google アカウントにログインした状態で Google Cloud Platform のリンクを開きます。
console.cloud.google.com

プロジェクト作成

リンク先を開くと以下の画面が表示されるので、画面上のメニューにある「プロジェクトの選択」をクリックする。
その後、「新しいプロジェクト」をクリックする。
f:id:a1026302:20210726161959p:plain

プロジェクト名を入力して「作成」ボタンをクリックします。
f:id:a1026302:20210726162318p:plain

APIの選択

Google Drive API

「APIとサービス」を選択して「ライブラリ」をクリックします。
f:id:a1026302:20210726162604p:plain
「Google Drive」と入力して検索すると「Google Drive API」というAPIが候補に上がるのでそれをクリックします。

f:id:a1026302:20210726162754p:plain

クリック後に「有効にする」をクリックします。

Google Sheets API

今度は「Google Sheets」と入力し、候補に出てきた「Google Sheets API」をクリックします。
f:id:a1026302:20210726163204p:plain

認証情報

左のメニューバーより「APIとサービス」から「認証情報」をクリックします。
f:id:a1026302:20210726163545p:plain

「認証情報を作成」をクリックします。
f:id:a1026302:20210726163747p:plain

サービスアカウントを作成します。
サービスアカウントが作成されていれば以下のようにレコードが追加されます。
f:id:a1026302:20210726164222p:plain

最終的にjson形式のファイルをダウンロードします。
ダウンロードしたらjsonファイルに記載されている「client_email」の情報を控えます。
(スプレッドシートの共有に必要なため)

スプレッドシートの設定

pythonで操作したいスプレッドシート を開いて、右上の「共有」をクリックします。
f:id:a1026302:20210726171329p:plain

「ユーザー」の部分に、先ほどコピーした「"client_email"」の値を貼り付けます。

python

パッケージインストール

pip コマンドで2つのパッケージをインストールします。

gspread

gspread は Pythonでスプレッドシートを操作することができるライブラリです。

pip install gspread
oauth2client

oauth2client は Google APIs の認証周りをお世話してくれる Python のライブラリです。

pip install oauth2client

サンプルコード

以下サンプルコードです。

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(
    'Google Cloud Platform で取得したjsonファイル名', 
    scope
)
  
# 認証
gc = gspread.authorize(credentials)
# スプレッドシート指定
target = gc.open('test')
# シート名指定
sheet = target.worksheet('シート1')
# 文字列を書き込み
target_sheet.update_acell('A1', 'test-sample')