Basic idea
僕はデータの整理にGoogleスプレッドシートをよく利用しています。
そのデータの可視化にpandasやplotlyを使うことが多く、毎回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しています。
これで当初の目的は達成できたのですが、毎回スプレッドシートのKEYとGIDを抜きだして並べるのは面倒です。
スプレッドシートの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種類の形式があります。
共有設定から
リンクのコピーをした場合 :https://docs.google.com/spreadsheets/d/KEY/edit?usp=sharing開いているシートのURLを直接コピーした場合 :
https://docs.google.com/spreadsheets/d/KEY/edit?gid=GID
Note
共有されていない or 共有設定が制限付きの場合は、「ダウンロードできませんでした。共有設定を確認してください。」のようなエラーメッセージが出せるようにしたいです。
設定ファイルに必要なアイテム
URL: ブラウザからコピペしたURL(KEYとGIDはURLから抽出すればOK)FMT: ダウンロードの形式(csv,tsv,xlsx,odsに限定する)FILENAME: ダウンロードしたファイルのファイル名(拡張子は除く)