Ako vložiť obrázky podľa dátumu vytvorenia s google apps skript?

0

Otázka

Hľadám inesrt obrazové súbory do google snímky podľa dátumu boli vytvorené. Mám nasledujúci kód, ktorý sequentually vkladá obrázky do googlu listov z disku priečinok:

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

}

Ja by som chcel zmeniť to tak, že obrázky sú pridané do dátumu, ktoré boli vytvorené (buď najnovšie alebo najstaršie). Akákoľvek pomoc prijaté bude veľmi ocenil. Vďaka.

2

Najlepšiu odpoveď

2

Verím, že vaším cieľom je nasledovný.

  • Chcete prevziať súbory obrázkov z konkrétneho priečinka.
  • Chcete uložiť prevzaté obrázky Google Listy v poradí vytvorené dátum súboru.
  • Chcete dosiahnuť pomocou Aplikácie Google Skriptu.

V tomto prípade, ako sa o tieto úpravy?

Pri metóde "Súbory: zoznam" na Disku API je použitý, súbor, zoznam môže byť obnovený v poradí vytvorené dátum. Používa sa pre zmenu.

Upravený skript:

Pred použitím tohto skriptu, prosím povoľte Jednotky API na Rozšírené služby spoločnosti 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);
  });
}
  • Keď tento skript spustiť, súbor, zoznam je prevzatý z konkrétneho priečinka v poradí vytvorené dátum súboru. V tomto prípade, orderBy: "createdDate asc" je používaný. To znamená, že 1. obrázok je najstarší obraz. Ak chcete použiť príkaz, že 1. obrázok je najnovší obrázok, upravte na orderBy: "createdDate desc".

Odkazy:

2021-11-24 00:26:31

Vďaka za odpoveď Tanaike, to robí presne to, čo chcem.
sp2

@sp2 Ďakujem za odpoveď a skúšanie. Som rád, že problém bol vyriešený. Ďakujem, príliš.
Tanaike

Ahoj Tanaike, ja som zistil, vyššie kód nie je schopná načítať súbory zo zdieľaného priestoru disk google (kód dáva žiadna chyba, to jednoducho nie je zaťaženie nič). Môžem len nahrávať obrázky z môjho osobného drive - by ste mali nejaký nápad, čo sa to tu deje?
sp2

@sp2 O ďalšie vaše otázky, v tom prípade, prosím, upraviť var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; na 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;. To, súbory v zdieľaných Disk môže byť obnovený.
Tanaike

Vďaka Tanaike, že to funguje. Bol som snaží zmeniť orderBy parameter ak chcete zoradiť súbory podľa objednávky 'name' a 'name_natural' atď. ako obrys tu, ale dáva chybu. Prečo nie orderBy prijať tieto parametre v tomto smere?
sp2

@sp2 Ďakujem za odpoveď. Som rád, že váš 2. otázka bola vyriešená. O vašom 3. novú otázku, rád by som, aby vás podporili. Ale musím sa ospravedlniť za moju zlú angličtinu, zručnosť. Bohužiaľ, nemôžem to pochopiť. Som hlboko sa ospravedlňujem, že som sa nemôže vyriešiť všetky vaše otázky. To je vzhľadom na moju zlú angličtinu, zručnosť. Som hlboko sa ospravedlňujem za to znova. Môžem sa vás opýtať na podrobnosti z vášho 3. otázku?
Tanaike

Ahoj Tanaike, že je úplne pochopiteľné, nie je potrebné ospravedlniť sa. V podstate som sa bol pýtať, ako môžem pridávať obrázky v abecednom poradí? Chcel som využiť orderBy : name alebo orderBy : name_natural v kóde namiesto orderBy : createdDatetak , ako je uvedené v odkaze podelil som, ale nefunguje to, bol len opýtať, prečo.
sp2

@sp2 Ďakujem za odpoveď. Ospravedlňujem sa za moju zlú angličtinu, zručnosti znova. Aj keď nie som si istý, či by som mohol správne porozumieť vašim 2. otázku, napríklad, v odpovedi, keď súbor sa načíta zoznam v poradí createdDateSom používané createdDate asc ako hodnotu. A v tomto prípade, ak chcete zoradiť zoznam súborov podľa názvu súboru, ako o použití orderBy: "title asc"? Ak to nie je priame riešenie vášho 2. otázka, ospravedlňujem sa znova.
Tanaike
1

Ak chcete, aby ich v konkrétnom poradí len triediť ich pred pridaním.

2021-11-23 23:55:56

Vďaka za zdieľanie, že odkaz
sp2

V iných jazykoch

Táto stránka je v iných jazykoch

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