今回はpythonでスプレッドシートを編集する方法を簡単にまとめてみました。
シートの作成方法やセルへの入力方法を記載しています。
No.1~7:認証キーの作成
認証するためのキーを作成するために、Google Cloud PlatformよりGoogle DriveのAPIを有効にした後、サービスアカウントを作成し、jsonファイルをダウンロードします。
No.9~10:スプレッドシートの取得
編集するスプレッドシートを取得する方法はいくつかありますが、主にID、もしくはURLを使って設定。
そのほかの方法だと、ファイル名で取得することも可能です。
No.13~15:スプレッドシートを開く
設定したIDで開くか、それともURLで開くか、やりやすい方で良いと思います。
No.17~18:ワークシートの取得
ワークシート名を直接指定して、対象のシートを取得する方法もあるが、今回はインデックスで指定して取得しました。
注意すべきポイントは、1シート目はインデックスでいうと0に当たることです。その他「sheet1」でも取得可能です。
No.20~21:ワークシートの複製
シートを複製できるコマンドです。引数は左から「複製元のシート, 複製するシートの名前, 複製先」をそれぞれ指定しています。
インデックスの考え方は、No.18と同じ。
No.26~30:セルへの入力
リストに格納されているデータの数だけ、順番にセルに入力できます。
No.28はアルファベット順に取得しているが、覚えておくと非常に便利。最後に引数で指定されたセルと値で更新。
import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
gc = gspread.authorize(creds)
#編集するスプレッドシートを設定
# sheet_id = 'ID' (IDで取得)
sheet_url = 'URL' # URLで取得
#設定したスプレッドシートを開く
# wb = gc.open_by_key(sheet_id) (スプレッドシートのIDを指定してワークブックを選択)
wb = gc.open_by_url(sheet_url) # URLを指定してワークブックを開く
#対象のスプレッドシートから1番目に当たるシートを取得
ws0 = wb.get_worksheet(0)
#シートの複製
wb.duplicate_sheet(source_sheet_id=ws0.id, new_sheet_name='sheet', insert_sheet_index=1)
ws1 = wb.get_worksheet(1)
date = ['2022/01', '2022/02', '2022/03', '2022/04', '2022/05', '2022/06']
for n in range(len(date) -1):
value = date[n]
for m in [chr(ord("B") + n)]:
row1 = f'{m}2'
ws1.update_acell(row1, value)
参考情報
https://tanuhack.com/library-gspread/
https://takake-blog.com/python-driveapi/