スプレッドシートをxlsx形式で自動ダウンロードする方法

PowerShell

「スプレッドシート見づらいので、自動でダウンロードしてExcelで見たい。」
「スプレッドシートを定期的にダウンロードしたい。その作業を自動化したい。」
などといったときに使える、PowerShellスクリプトを紹介します。

サンプル

サンプルは、以下のことを想定した内容です。
(1) 指定したスプレッドシートをxlsx形式でダウンロードする。
(2) ダウンロードするファイル名は「yyyymmdd_サンプル.xlsx」。(定期的にログを取るときなど)

定期的にログを取る場合、
このスクリプトを実行するbatファイルを作り、
そのbatファイルをタスクスケジューラで定期的に実行させればよいです。

サンプル解説

アセンブリ読み込みます。
ダウンロード成功時・失敗時に表示するメッセージを表示するために使います。

ファイル名を決めます。
いつダウンロードしたのかわかるよう、ファイル名の冒頭に年月日をつけました。
定期的にダウンロードするのに便利かと思います。
(例)2022年3月1日にダウンロード→「20220301_サンプル.xlsx」

ダウンロードするファイルを保存先のフォルダパスを決めます。
フォルダパスを取得する方法を2つ紹介します。
(1) エクスプローラの階層が表示されている箇所をクリックしてコピーする方法
 ①エクスプローラから保存先のフォルダにアクセスする。
 ②エクスプローラのパス(下画像の赤枠部分)をクリックしてコピー。
 ③その後、保存先のフォルダの最後に\を忘れずに書いてください(よく忘れます)
 ④最後に「”」(ダブルクオーテーション)で挟んでください。

この「新しいフォルダー」に保存する場合、「$HozonPath = C:\Users\81902\OneDrive\デスクトップ\新しいフォルダー\」となる。

(2) 「パスのコピー」で取得。
保存先のフォルダをエクスプローラで開きます。
上部にある「パスのコピー」をクリックするとコピーできます。右クリック&貼付でOKです。

Join-Pathで、パスと子パスを1つに結合します。

スプレッドシートをxlsx形式でダウンロードするためのリンクです。
スプレッドシートの仕様上、上記のようなリンクで、直接ダウンロードができます。
xlsx以外に、例えば末尾をcsvにすると、CSV形式でダウンロードできます。
その場合、ファイル名も「.csv」にする必要があります。

(スプレッドシートのIDを入れてください)とありますが、
ここは、スプレッドシートのURLの「(ここの部分)」です。「d/」と「/edit」に挟まれています。

https://docs.google.com/spreadsheets/d/(ここの部分)/edit~

ダウンロードしたいスプレッドシートを開き、URLの「(ここの部分)」をコピペしましょう。

Invoke-WebRequestで、Webページを取得します。
スプレッドシートをxlsx形式でダウンロードするURLを使っています。
そのため、これを実行するとファイルが、指定したパスに保存されます。

Startコマンドレットでもファイルをダウンロードできますが、Webブラウザを開いてしまいます。
今回紹介した方法では、Webブラウザを開かないので、便利ですよ。

ダウンロード成功時、メッセージボックスで「ファイルをダウンロードしました。」と表示します。
ダウンロード失敗時、エラーを発するので、try~catchで分岐して、「ファイルのダウンロードが失敗しました。インターネット接続を確認してください。」と表示させています。

当然ですが、スプレッドシートはインターネット繋がっていないと見れません。
失敗するときはインターネット接続がうまくいっていない時なのかなと思います。

タイトルとURLをコピーしました