python でスプレッドシートの特定のシートをクリアする対応があったのでその時のメモをここに残します。
準備
認証情報の設定
クレデンシャル JSON ファイルを使用して認証し、APIへのアクセスを可能にさせたいので以下の準備を行います。
- gcp コンソールから左側メニューから「APIとサービス」 > 「認証情報」に進む
- 「認証情報を作成」をクリックし、「サービスアカウント」を選択
- サービスアカウント名とIDを入力し、「作成して続行」をクリック
- サービスアカウントが作成された後、「キーを作成」をクリック
- 「JSON」形式を選択すると、クレデンシャルJSONファイルが自動的にダウンロード
スプレッドシート準備
- 評価用スプレッドシートを準備して spreadsheet_id と sheetName をメモ
- 操作したいスプレッドシートを開き、「共有」をクリックし、作成したサービスアカウントのメールアドレスを追加して「編集者」に設定
コード
$ cat sample.py from google.oauth2.service_account import Credentials from googleapiclient.discovery import build # クレデンシャルJSONファイルのパス CREDENTIALS_FILE = "./{{__クレデンシャルJSON__}}.json" # スプレッドシートのIDとシート名を指定 spreadsheet_id = "{{__シートID__}}" sheet_name = "{{__シート名__}}" # 使用するスコープ SCOPES = ["https://www.googleapis.com/auth/spreadsheets"] # 認証情報の設定 credentials = Credentials.from_service_account_file( CREDENTIALS_FILE, scopes=SCOPES, ) # Google Sheets API クライアントの作成 service = build("sheets", "v4", credentials=credentials) # クリアする範囲を指定 rangeAll = sheet_name body = {} # シートをクリアする処理 result_clear = ( service.spreadsheets() .values() .clear( spreadsheetId=spreadsheet_id, range=rangeAll, body=body, ) .execute() ) print(f"シートクリア: {result_clear}")