フォルダIDはGoogleドライブのURLが下記の場合、
https://drive.google.com/drive/u/0/folders/hogehoge
のhogehoge部分です
コードサンプル
一行ごとに処理、シートに反映するを実現するためにsheet.getRange(1, 1, 1, 1).getValues();
しております。
他の方法があれば教えてください!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
function download() { colorReset() const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getActiveSheet(); const rows = sheet.getLastRow() - 1; const datas = sheet.getRange(2, 1, rows, 4).getValues(); datas.forEach(function (data, index) { sheet.getRange(1, 1, 1, 1).getValues(); colorSet("#00ffaa", index, "ダウンロード中") sheet.getRange(1, 1, 1, 1).getValues(); const url = data[0]; const folder = DriveApp.getFolderById(data[3]); const option = { method: "get" } const response = UrlFetchApp.fetch(url, option); const blob = response.getBlob(); let newFile = folder.createFile(blob); newFile.setName(data[1] + data[2]); colorSet("#ee00aa", index, "完了") }); } function colorReset() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getActiveSheet(); const rows = sheet.getLastRow(); sheet.getRange(1, 1, rows, 4).setBackground("#ffffff") sheet.getRange(2, 5, rows - 1, 1).setValue("準備中") } function colorSet(color, index, text) { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getActiveSheet(); sheet.getRange(index + 2, 1, 1, 4).setBackground(color) sheet.getRange(index + 2, 5, 1, 1).setValue(text) } //起動時にメニューを手動項目で追加する function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu("ダウンロードはこちら").addItem("ダウンロード", "download").addItem("色をリセット", "colorReset").addToUi(); } |
投稿者プロフィール
最新の投稿
- JavaScript2022.02.09【業務改善】画像URLから画像をGoogleドライブのフォルダにアップロードするツール
- 業務効率化2021.12.20【業務改善】ユーザ辞書ファイルをスプシで管理、ダウンロードできるツール
- 業務効率化2021.07.29backlogの全PJをスプシに一括自動転記するGAS