まえがき
クラウドソーシングサイトに投稿があった依頼で、スプレッドシート上に記載されているURLのリンク先をPDFダウンロードしたいといったものがあったので、GASでのシンプルな実装例を載せておこうと思います。
コード
function myFunction() {
// PDF取得
var sheet = SpreadsheetApp.getActiveSheet()
var url = sheet.getRange(1, 1).getValue() // あらかじめサンプルのURLを入力している前提
var pdf = UrlFetchApp.fetch(url).getAs('application/pdf')
// Googleドライブへ保存 (ルートディレクトリに保存)
DriveApp.createFile(pdf)
// 完了メッセージ
Browser.msgBox("Complete", Browser.Buttons.OK)
}
解説
解説するほどの内容ではないですが、
スプレッドシートのシート情報取得(3行目)
↓
シート上のセルからURL文字列を取得(4行目)
↓
fetchメソッドでHTTPリクエストし、getAs('application/pdf')でPDFオブジェクト取得(5行目)
↓
createFileメソッドでファイル保存(8行目)
という流れです。
最後のBrowser.msgBoxメソッドでは処理が終わったことがわかりやすいようにポップアップを出しています。
あとはURLの取得の仕方だったり、保存の仕方(ファイル名指定や保存先の指定)だったりを各々いじっていただければと思います。