
あきぞらです。
Pythonのgspreadというライブラリを使うときがたまにあります。
「特定の範囲のセルだけクリアする」処理を入れたい時がありました。
パッとやり方が分からず、少し悪戦苦闘したので、やり方を紹介していこうと思います。
そもそもgspreadとは?
PythonでGoogle SpreadSheetの操作が可能になるライブラリです。
Pythonが入っていれば、以下でpipインストールできます。
$ pip install gspread
参考になったサイト
さて、表題の「セルをクリアにする方法」ですが、
stackoverflowに同じ悩みを持っている人が質問していました。
ここの質問の回答を参考にすると、やり方が分かりました。
また、公式サイトをよく読んでみると、書いてありました。
公式サイトはしっかり読まないとダメですね。
特定の範囲のセルをクリアする方法
まず、スプレッドシートのオブジェクトを取得したあと、
values_clearという関数を使ってクリアの処理を行います。
from oauth2client.service_account import ServiceAccountCredentials
# スプレッドシートのAPIを使うための認証情報
SCOPES = [
'https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive'
]
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'./service_account.json',
SCOPES
)
gc = gspread.authorize(credentials)
workbook = gc.open_by_key('スプレッドシートのID')
# シート名が「テストシート」の、A1~H1000までの範囲をクリアにする
workbook.values_clear("'テストシート':!A1:H1000")
最後の方の、workbook.values_clearのところでシート名:!セル範囲を指定してあげることで、
指定のセルをクリアすることができます。