スプレッドシートをExcel形式でDL(Python)

目次

※本ページ先頭に戻りたい場合は画面右下の画像に alt 属性が指定されていません。ファイル名: fdd5c5eff34d006b8526d0602cef2cd6.pngボタンを押して下さい。

概要

スプレッドシートをExcel形式でダウンロードし、
「yyyymmdd_hhmmss」の時間込みファイル名にリネームし、格納する

プログラムを作成した理由

Q&Aスプレッドシートを、
毎日Excel形式でダウンロードし、前日~当日との差分をExcelファイルで出力する】
という下記1~4業務があった。

  1. 毎朝、Q&AスプレッドシートをExcel形式でダウンロード
  2. 差分箇所があるセルを、背景色黄色にする
  3. 追記された文章を、文字色赤色にする
  4. 差分表をslackに投稿

この差分表出力を手作業で行っていて、
毎朝30~60分程度かかっているので、自動化して欲しい…:大泣き:

と依頼された為、
まずは、下記1をPythonで自動ダウンロード出来るプログラムを作成。

  1. 毎朝、Q&AスプレッドシートをExcel形式でダウンロード
  2. 差分箇所があるセルを、背景色黄色にする
  3. 追記された文章を、文字色赤色にする
  4. 差分表をslackに投稿

ソースコード

ソースコード解説

「スプレッドシートをExcel形式でDLする」
これだけ行いたい場合は、下記コード1行だけで済みます。

ダウンロードURLには、
下記{spreadsheet_id}をダウンロードしたいスプレッドシートの
実際のファイルIDに書き換えればOKです。

参考サイト:Google SpreadsheetをURLダウンロードする

https://qiita.com/hotsprings/items/1730135ec4b7b8f40f99

後は、【タスクスケジューラにて、毎朝n時にPythonを実行】するタスクを登録すれば、
定期的にダウンロード可能なシステムの完成です!

備忘録

実際のDL処理は1行のコードなのに、
様々コードが存在している理由としては、

  1. 「DL完了するまで、n秒待機する」
    ※実行時のネット回線次第で、1秒で終わるかもしれないし10秒かかるかも知れない

  2. 「1日に何回もDLした事を考慮し、既存ファイル名先頭に【過去分】と付けてリネーム」
    ※何日も繰り返していると、最新版がどれか分からくなってくる

…等、「自分が使うなら、↑辺りが面倒くさくなりそう…」
と思える箇所を事前に対策している為です。

お客様や、他人に納品するコードならば、
上記のような処理を入れるべきだと思いますが、
個人で使う業務改善ツールであれば、過剰品質かなーとも思います。

感想

今回の「Q&AスプレッドシートをExcel形式でダウンロード」ですが、
当初はSeleniumを用いて行うつもりでした。

しかし、Seleniumだと毎回Googleアカウントにログインしないと、
会社内のスプレッドシートを閲覧出来ない為、DL出来ない…:大泣き:

という問題に直面し、
「そもそも、もっと簡単な方法無いのかな…」と調べたところ、
「1行で出来るじゃん…笑」と気づいて自分に失笑してました←

過去の知見だけで突っ走るのは止めましょう(戒め)


今回の記事で下記1をPythonで実現した為、

次回以降の記事にて、
下記2、3の【DLした前日分~当日分のQ&A_Excelファイルの差分出力】をExcelVBAで実現していきます。

  1. 毎朝、Q&AスプレッドシートをExcel形式でダウンロード
  2. 差分箇所があるセルを、背景色黄色にする
  3. 追記された文章を、文字色赤色にする
  4. 差分表をslackに投稿

編集履歴

2023/05/05 新規作成

関連記事一覧

PAGE TOP