【GAS】Googleドキュメントのファイル一覧をスプレッドシートに書き出す
参考
qiita.com
/** @OnlyCurrentDoc */ function outputFileListLink() { //フォルダIDを指定する var folder_id = "1K-Zig9uIKt9iH2XWQYe3nrngyzkyB3eA"; //URLの「~~folders/{この部分}」 //フォルダ情報を取得する var folder = DriveApp.getFolderById(folder_id); //フォルダ情報からファイル一覧を取得する var files = folder.getFiles(); var list = []; //この変数のファイル名・URLが入っていきます //フォルダ内のファイル一覧を1件ずつ読み込む while(files.hasNext()) { //ファイル情報を1件読む var buff = files.next(); //ファイル名取得 var xlsName = buff.getName(); //ファイル名の1文字目から"_"が最初に出てきた位置までの文字列を取得 var nameIndex = xlsName.indexOf("_"); //何文字目に"_"が入っているか取得 xlsName = xlsName.substring(0, nameIndex); //1文字目から指定文字目までの文字列を取得 //ファイルのURLを取得 var xlsLink = buff.getUrl(); //URLからダウンロード用のリンク文字列を作成 xlsLink = xlsLink.replace("file/d/", "uc?export=download&id="); //文字を置換 xlsLink = xlsLink.replace("/view?usp=drivesdk","") //文字を置換 xlsLink = "=HYPERLINK(\"" + xlsLink + "\")" //ハイパーリンクの関数を設定 //ファイル名、URLを格納 list.push([xlsName, xlsLink]); }; // ファイルが0件なら処理終了 if(list.length == 0) { return; } // 出力先シートを取得する var ss = SpreadsheetApp.getActive(); //アクティブになっているスプレッドシートを取得 var sheet = ss.getSheetByName("シート2"); //シート2を取得 // シートの内容をクリア sheet.clearContents(); // 出力範囲を取得 var rowIndex = 1; // The starting row of a range. var colIndex = 1; // The starting row of a column. range = sheet.getRange( rowIndex, // 行始点位置 colIndex, // 列始点位置 list.length, // 行終点位置(ファイルの数を指定) list[0].length // 列終点位置(2(ファイルとURL)を指定) ); // 対象の範囲にまとめて書き出します range.setValues(list); }