Uzyskaj wszystkie identyfikatory plików
Pracuję nad folderem na poziomie klasy z tą samą zawartością. Użyłem funkcji IMPORT RANGE, aby połączyć arkusze kalkulacyjne. Dlatego muszę aktualizować identyfikatory za każdym razem, gdy tworzę kolejny poziom oceny. Czy mogę zapytać, czy mogę uzyskać wszystkie identyfikatory wszystkich plików, nad którymi pracuję, bez edytowania lub wpisywania ich jeden po drugim? Może skrypt, który to ułatwi?
Oto zdjęcie listy identyfikatorów.

Jeśli to możliwe, myślę o tym, aby uzyskać nazwę pliku, a następnie uzyskać jego identyfikator.
Odpowiedzi
Wyjaśnienie:
Poniższy skrypt pobierze wszystkie nazwy plików z zakresu
B3:B
. Następnie dla każdej nazwy pliku używamy getFilesByName, aby pobrać pliki odpowiadające tej nazwie. Upewnij się, że nie masz plików o tej samej nazwie, w przeciwnym razie ten proces zwróci wiele identyfikatorów dla tej samej nazwy i dlatego logika nie będzie działać.Na koniec używamy getId, aby uzyskać identyfikator każdego pliku i przechowywać go w tablicy. Ta tablica zostanie następnie wklejona do kolumny C, zaczynając od komórki,
C3
jak wskazano na zrzucie ekranu.
Rozwiązanie:
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);
}