ものづくりのブログ

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

【python】スプレッドシートの特定のシートをクリア

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}")