フォルダIDはGoogleドライブのURLが下記の場合、
https://drive.google.com/drive/u/0/folders/hogehoge
のhogehoge部分です
コードサンプル
一行ごとに処理、シートに反映するを実現するためにsheet.getRange(1, 1, 1, 1).getValues();しております。
他の方法があれば教えてください!
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();
}
投稿者プロフィール
最新の投稿
技術・開発情報2022年2月9日【業務改善】画像URLから画像をGoogleドライブのフォルダにアップロードするツール
技術・開発情報2021年12月20日【業務改善】ユーザ辞書ファイルをスプシで管理、ダウンロードできるツール
技術・開発情報2021年7月29日backlogの全PJをスプシに一括自動転記するGAS