Cum pentru a insera imagini în funcție de data creării cu google apps script?

0

Problema

Caut să inesrt fișierele de imagine în google slide-uri în funcție de data la care au fost create. Am urmatorul cod, care sequentually inserții de imagini pentru a googles slide-uri dintr-o unitate folder:

function makeSlides() {
  
  var presentation = SlidesApp.openById(slideID);
  var folder = DriveApp.getFolderById(folderID);
  var contents = folder.getFiles()
  
  var file;
  var i = 1;
  
  while (contents.hasNext()) {
    
    var file = contents.next();
  
    data = file.getId(); 
    
    // insert above image
    
    var image = DriveApp.getFileById(data);
    var slide = presentation.getSlides()[i];
    var image = slide.insertImage(image);
    slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);    
    i++;
 
  }

}

Aș dori să-l modifice astfel încât imaginile sunt adăugate de data la care au fost create (fie ele mai noi sau mai vechi). Orice ajutor primit va fi apreciat foarte mult. Multumesc.

2

Cel mai bun răspuns

2

Cred ca scopul este după cum urmează.

  • Doriți să preluați fișierele de imagine din folder specific.
  • Vrei pentru a pune preluate imagini de la Google Slide-uri, în scopul de a data creării fișierului.
  • Vrei pentru a realiza acest lucru folosind Google Apps Script.

În acest caz, cum rămâne cu următoarele modificări?

Atunci când metoda de "Fișiere: lista" în Disk API este folosit, lista de fișiere pot fi recuperate în scopul de create data. Acest lucru este folosit pentru modificare.

Modificat script-ul:

Înainte de a folosi acest script, vă rugăm să activați Disk API Avansat la serviciile Google.

function makeSlides() {
  var slideID = "###"; // Please set your Google Slides ID.
  var folderID = "###"; // Please set your folder ID.

  var presentation = SlidesApp.openById(slideID);
  var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items;
  files.forEach(({id}, i) => {
    var image = DriveApp.getFileById(id);
    var slide = presentation.getSlides()[i];
    var image = slide.insertImage(image);
    slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
  });
}
  • Atunci când acest script este rulat, lista de fișiere este preluat din folder specific în ordinea de data creării fișierului. În acest caz, orderBy: "createdDate asc" este folosit. Acest lucru înseamnă că 1 imagine este cea mai veche imagine. Atunci când doriți să utilizați pentru că 1-a imagine este cel mai nou imaginea, vă rugăm să modificați pentru a orderBy: "createdDate desc".

Referințe:

2021-11-24 00:26:31

Vă mulțumim pentru răspunsul dumneavoastră Tanaike, asta face exact ceea ce vreau.
sp2

@sp2 vă Mulțumesc pentru răspuns și de testare-l. Mă bucur că problema a fost rezolvată. Mulțumesc, de asemenea.
Tanaike

Salut Tanaike, am descoperit codul de mai sus nu este în măsură să se încarce în fișiere din google drive (codul da nici o eroare, doar ca nu se incarca nimic). Pot doar să încărcați imagini de la meu personal drive - ai idee de ce se întâmplă aici?
sp2

@sp2 Despre întrebare suplimentară, în acest caz, vă rugăm să modificați var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; pentru a var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)", corpora: "allDrives", includeItemsFromAllDrives: true, supportsAllDrives: true}).items;. Prin aceasta, fișiere în Unitate comună pot fi recuperate.
Tanaike

Multumesc Tanaike, acest lucru funcționează. Am fost încercarea de a modifica orderBy parametru pentru a sorta fișierele de comanda 'name' și 'name_natural' etc. după cum sublinia aici, dar da o eroare. De ce nu pot orderBy acceptă acești parametri în acest fel?
sp2

@sp2 Mulțumesc pentru răspuns. Ma bucur ca ti-a 2-a intrebare a fost rezolvată. Despre 3rd nouă întrebare, aș dori să vă sprijine. Dar trebuie să-mi cer scuze pentru bietul meu calificare engleză. Din păcate, eu nu pot să înțeleg. Îmi cer scuze că nu pot rezolva toate întrebările. Acest lucru se datorează bietul meu calificare engleză. Îmi cer scuze pentru acest lucru din nou. Pot să te întreb despre detaliile de 3 întrebare?
Tanaike

Salut Tanaike, care este perfect de înțeles, nu-i nevoie să-mi cer scuze. Practic, am fost întrebat cum pot adăuga imagini în ordine alfabetică? Am vrut sa folosesc orderBy : name sau orderBy : name_natural în cod în loc de orderBy : createdDateconform link-ul de i-am împărtășit, dar aceasta nu funcționează, întrebam de ce.
sp2

@sp2 Mulțumesc pentru răspuns. Îmi cer scuze pentru săraci engleză de calificare din nou. Deși nu sunt sigur dacă am putea înțelege în mod corect a 2 întrebare, de exemplu, în răspunsul meu, atunci când lista de fișiere este preluat, în scopul de createdDateAm folosit createdDate asc ca valoare. Și în acest caz, atunci când doriți pentru a sorta lista de fișiere de nume de fișier, cum despre utilizarea orderBy: "title asc"? Dacă acest lucru nu a fost direct soluție de a 2-a intrebare, imi cer scuze din nou.
Tanaike
1

Dacă doriți să le în ordine specifice doar un fel le înainte de a adăuga.

2021-11-23 23:55:56

Vă mulțumim pentru partajarea acest link
sp2

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................