Basic idea

僕はデータの整理にGoogleスプレッドシートをよく利用しています。 そのデータの可視化にpandasplotlyを使うことが多く、毎回CSV形式でダウンロードしてから読み込ませています。

ブラウザからぽちぽちしてダウンロードするのはめんどうだなぁと感じていたため、コマンドラインツールで実行できる方法を探していたら、StackOverflowで wget する方法がありました。

Download unpublished Google spreadsheet as CSV

$ wget "https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csv"

これは、ダウンロードしたシートの<KEY>(=ブックのID)と<GID>(=シートのID)を使ってwgetしています。 これで当初の目的は達成できたのですが、毎回スプレッドシートのKEYGIDを抜きだして並べるのは面倒です。 スプレッドシートのURLをコピペして引数に渡すだけで、ダウンロードできるようになったら便利だろうなと考え、Pythonパッケージを作ってみることにしました。

Note

このパッケージを作成しはじめたのは2020年のGWころで、ちょうどコロナ禍でステイホームしていたときです

What I wanted to do

$ snapsheets シートのURL
==>(シートのURLからKEYとGIDを抽出)
==>(CSV形式でダウンロード)
snapsheet_KEY_GID.csv

シートのURL

Googleスプレッドシートの共有設定がリンクを知っている全員になっているのを前提としています(役割は閲覧者でOK)。 コピーのしかたによってURLは2種類の形式があります。

  1. 共有設定からリンクのコピーをした場合 : https://docs.google.com/spreadsheets/d/KEY/edit?usp=sharing

  2. 開いているシートのURLを直接コピーした場合 : https://docs.google.com/spreadsheets/d/KEY/edit?gid=GID

Note

共有されていない or 共有設定が制限付きの場合は、「ダウンロードできませんでした。共有設定を確認してください。」のようなエラーメッセージが出せるようにしたいです。

設定ファイルに必要なアイテム

  • URL : ブラウザからコピペしたURL(KEYGID はURLから抽出すればOK)

  • FMT : ダウンロードの形式(csv, tsv, xlsx, ods に限定する)

  • FILENAME : ダウンロードしたファイルのファイル名(拡張子は除く)