データサイエンス

Google Spread Sheetとpython

pythonからspread sheetを操作した時のメモです
pythonのgspreadパッケージをインストールと認証ファイルを取得すれば簡単にできます

これをベースにawsのlambdaやgcpのcloud functionに乗せれば、クラウド上でスプレッドシートの操作もできるようになります

準備

こちらの内容を踏襲してます

Google Sheets APIの有効化

簡単に

  • ブラウザからGCPコンソール画面に入る
  • サイドメニューの”APIとサービス” → “ライブラリ”をClick
  • Google Sheets APIを検索し、APIを有効化
  • サイドメニューの”IAMと管理” → “サービス アカウント”をClick
  • “サービスアカウントを作成”をClick → 名前を入力し”完了”ボタンをClick(他は省略)
  • 作成されたサービスアカウントをClick → キー → “鍵を追加”でJSONで新規作成
  • ダウンロードしたjsonファイルを適当なフォルダに移動

pythonパッケージ gspread をインストール

pip install gspread
$ python -V
Python 3.9.1
$ pip freeze | grep gspread
gspread==3.7.0

実装

  • インスタンス作成
import gspread
servece_account = 'ダウンロードしたJSONファイルのPATH'
gc = gspread.service_account(servece_account)

上記のgcをベースにworkbookやworksheetを生やします

早見表

description code
スプレッドシートの作成 sht = gc.create(‘A new spreadsheet’)
スプレッドシートの選択(Keyから) gc.open_by_key(‘Key’)
スプレッドシートの選択(URLから) sht = gc.open_by_url(‘対象スプレッドシートのURL’)
ワークシートの選択 sht.worksheet(“シート名”)
全セルデータの取得 val = worksheet.get_all_values()
セルの取得 1 val = worksheet.acell(‘B1’).value
セルの取得 2 val = worksheet.cell(1, 2).value
全セルデータの削除 worksheet.clear()
対象セルの削除 sht.values_clear(‘C2:AB1000’)
セルに書く 1 worksheet.update(‘B1’, ‘Bingo!’)
セルに書く 2 worksheet.update_cell(1, 2, ‘Bingo!’)
セルに書く 3 worksheet.update(‘A1’, [[1, 2], [3, 4]])

参照

higashi kunimitsu