【Python】gspreadでGoogleスプレッドシートを更新する

事前準備が面倒ですが、一度準備してしまえば、簡単に参照・更新ができるので便利です。
準備さえすれば、AWS Lambdaからも参照・更新が可能です。

環境

・python3.7
・ubuntu(docker環境)

事前準備

こちらのサイトを参考に初期設定を行います。

事前準備の概要
1.Google Cloud Platformでプロジェクトを作成
2.作成したプロジェクトでGoogle Drive APIを有効化する
3.作成したプロジェクトでGoogle Sheets API
4.「APIとサービス」->「認証情報」でサービスアカウントキーを作成し、JSONファイル(秘密鍵)をダウンロード
5.サービスアカウントキーのメールアドレスを確認
6.gspreadでアクセスするスプレッドシートの共有設定で手順5で確認したメールアドレスを設定する
7.gspreadでアクセスするスプレッドシートのキーを確認する

必要なライブラリをインストール

pip install gspread oauth2client

サンプルコード

def init():
   import gspread
   from oauth2client.service_account import ServiceAccountCredentials
   
   SCOPE = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
   # 確認したスプレッドシートキーを指定
   SPREADSHEET_KEY = "xxxxxxxxxxxxx"
   # 事前準備でダウンロードしたJSONファイルを格納したパスを指定
   json_keyfile = "/path/gspread_auth.json"
   
   credentials = ServiceAccountCredentials.from_json_keyfile_name(json_keyfile, SCOPE)
   gc = gspread.authorize(credentials)
   workbook = gc.open_by_key(SPREADSHEET_KEY)
   
   return workbook

workbook = init()

# シート取得
worksheet = workbook.worksheet("シート名")

# セル範囲取得
range = worksheet.range("A1:B1")

# A1セルを更新
range[0].value = "test"
# B1セルを更新
range[1].value = 1

# スプレッドシート更新
worksheet.update_cells(range)

単純な取得・更新だったらこんな感じで簡単にできます。

いいなと思ったら応援しよう!