Dapatkan semua ID file
Saya sedang mengerjakan folder per tingkat kelas dengan konten yang sama. Saya menggunakan fungsi IMPORT RANGE untuk menghubungkan spreadsheet. Jadi saya perlu memperbarui ID setiap kali saya membuat tingkat kelas lain. Bolehkah saya bertanya apakah saya bisa mendapatkan semua ID dari semua file yang saya kerjakan tanpa mengedit atau mengetiknya satu per satu? Mungkin script yang bisa mempermudah?
Berikut gambar daftar KTP.
Jika memungkinkan, alur yang saya pikirkan adalah mendapatkan nama file dari file-file tersebut dan kemudian mendapatkan id-nya.
Jawaban
Penjelasan:
Skrip berikut akan mendapatkan semua nama file dalam rentang tersebut
B3:B. Kemudian forEach nama file yang kita gunakan getFilesByName untuk mendapatkan file sesuai dengan nama itu. Pastikan Anda tidak memiliki file dengan nama yang sama, jika tidak proses ini akan mengembalikan beberapa ID untuk nama yang sama dan karena itu logika tidak akan berfungsi.Akhirnya kami menggunakan getId untuk mendapatkan ID dari setiap file dan menyimpannya ke dalam array. Larik ini kemudian akan ditempelkan ke kolom C mulai dari sel
C3seperti yang Anda tunjukkan di tangkapan layar.
Larutan:
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);
}