ファイルのすべてのIDを取得します
Nov 20 2020
同じ内容の学年レベルごとのフォルダに取り組んでいます。IMPORTRANGE関数を使用してスプレッドシートを接続しました。そのため、別の成績レベルを作成するたびにIDを更新する必要があります。編集したり入力したりせずに、作業中のすべてのファイルのすべてのIDを取得できるかどうか尋ねてもいいですか?多分それを簡単にすることができるスクリプト?
これがIDのリストの写真です。

可能であれば、私が考えているフローは、ファイルのファイル名を取得してから、そのIDを取得することです。
回答
2 Marios Nov 20 2020 at 17:37
説明:
次のスクリプトは、範囲内のすべてのファイル名を取得します
B3:B
。次に、forEachのファイル名が、我々は使用getFilesByNameをその名前に対応するファイルを取得します。同じ名前のファイルがないことを確認してください。そうしないと、このプロセスは同じ名前の複数のIDを返すため、ロジックが機能しません。最後に、getIdを使用して各ファイルのIDを取得し、それを配列に格納します。この配列は
C3
、スクリーンショットに示されているように、セルから始めて列Cに貼り付けられます。
解決:
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1'); // change that to the name of your sheet
const filenames = sh.getRange('B3:B').getValues().flat().filter(r=>r!='');
const IDs = [];
const folderId = "put your folder id here";
const Folder=DriveApp.getFolderById(folderId);
filenames.forEach(fn=>{
let Files = Folder.getFilesByName(fn);
while(Files.hasNext()){
let file = Files.next();
IDs.push([file.getId()]);
}
});
sh.getRange(3,3,IDs.length,1).setValues(IDs);
}