Python

【Python】スプレッドシートを編集する方法

今回は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/

Google広告