Come inserire le immagini in base alla data di creazione con google apps script?

0

Domanda

Sto cercando di inserire una immagine file in google diapositive in base alla data in cui sono stati creati. Ho il seguente codice, che sequentually inserti di immagini di google diapositive da una cartella dell'unità:

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++;
 
  }

}

Vorrei modificarlo in modo che le immagini vengono aggiunti in base alla data di creazione più recente o più vecchia). Qualsiasi aiuto ricevuto sarà molto apprezzato. Grazie.

2

Migliore risposta

2

Credo che il tuo obiettivo è come indicato di seguito.

  • Si desidera recuperare i file di immagine da una cartella specifica.
  • Vuoi mettere le immagini recuperate a Google Diapositive in ordine di data di creazione del file.
  • Si desidera ottenere questo utilizzando Google Apps Script.

In questo caso, come per la seguente modifica?

Quando il metodo di "File: elenco" in Auto API viene utilizzata, l'elenco di file possono essere recuperati in ordine di data di creazione. Questo è utilizzato per la modifica.

Script modificato:

Prima di utilizzare questo script, si prega di abilitare Unità API Avanzata, servizi di 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);
  });
}
  • Quando viene eseguito questo script, l'elenco dei file recuperati da una cartella specifica in ordine di data di creazione del file. In questo caso, orderBy: "createdDate asc" è utilizzato. Questo significa che la 1 ° immagine è l'immagine più antica. Quando si desidera utilizzare l'ordine che la 1 ° immagine è l'ultima immagine, la preghiamo di modificare a orderBy: "createdDate desc".

Riferimenti:

2021-11-24 00:26:31

Grazie per la tua risposta Tanaike, questo fa esattamente quello che voglio.
sp2

@sp2 Grazie per la risposta e la fase di testing. Sono contento che il tuo problema è stato risolto. Grazie, troppo.
Tanaike

Ciao Tanaike, sto trovando il codice di cui sopra non è in grado di caricare i file in una condivisione di google drive (il codice non dà nessun errore, semplicemente non carica nulla). Posso solo caricare le immagini dal mio personale auto - se hai qualche idea di cosa sta succedendo qui?
sp2

@sp2 Circa la tua domanda, in questo caso, si prega di modificare var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; per 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;. Da questo, i file nell'Unità condivisa può essere recuperato.
Tanaike

Grazie Tanaike, questo funziona. Ho cercato di modificare il orderBy parametro per ordinare i file in ordine 'name' e 'name_natural' ecc. come descritto qui, ma dà un errore. Perché non è possibile orderBy accettare questi parametri in questo modo?
sp2

@sp2 Grazie per la risposta. Sono contento che la vostra domanda 2) è stato risolto. Circa il 3 nuova domanda, vorrei sostenere. Ma devo scusarmi per la mia scarsa conoscenza dell'inglese abilità. Purtroppo, io non riesco a capire. Chiedo profondamente scusa che non posso risolvere il tuo tutte le domande. Questo è a causa del mio scarso inglese abilità. Mi scuso profondamente per questo di nuovo. Posso chiederti i dettagli della domanda 3?
Tanaike

Ciao Tanaike, che è perfettamente comprensibile, non c'è bisogno di scusarsi. Fondamentalmente, mi è stato chiesto come posso aggiungere immagini in ordine alfabetico? Ho voluto utilizzare orderBy : name o orderBy : name_natural nel codice, invece di orderBy : createdDate, come indicato nel link che ho condiviso, ma non funziona, stavo chiedendo il perché.
sp2

@sp2 Grazie per la risposta. Mi scuso per la mia scarsa conoscenza dell'inglese abilità di nuovo. Anche se non sono sicuro se ho potuto comprendere in modo corretto la tua 2 ° domanda, per esempio, nella mia risposta, quando l'elenco dei file recuperati in ordine di createdDateHo usato createdDate asc come valore. E in questo caso, quando si desidera ordinare l'elenco dei file il nome del file, come circa usando orderBy: "title asc"? Se questa non era la soluzione diretta della tua 2 ° domanda, mi scuso di nuovo.
Tanaike
1

Se li vuoi in ordine specifico appena sorta di loro prima di aggiungere.

2021-11-23 23:55:56

Grazie per la condivisione di link
sp2

In altre lingue

Questa pagina è in altre lingue

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