Ouverture de documents à la chaine

Bonjour,

J'ai besoin de scanner un dossier, pour récupérer tous les documents GS qu'il contient, et de récupérer des données au sein de ces documents. Tout fonctionne bien sauf que çà prend des plombes pour l'exécution...

J'ai plusieurs questions :

1/ J'ouvre chaque document GS via la fonction SpreadsheetApp.openById. Je n'ai pas vu d'équivalent pour fermer le document, je n'ai pas besoin de le faire, sans pénaliser la performance ?

2/ Suis-je obligé d'ouvrir chaque document pour récupérer chaque nom de feuille que constitue le document ? C'est ce que je fais mais j'ai en moyenne plus de 100 documents dans le dossier, et cela prend env 20s à chaque ouverture, c'est clairement pas acceptable. Y aurait il une autre méthode ?

Merci

Bonjour,

Ce code permet d'afficher dans le Logger la liste des fichiers sheet et leurs onglets :

function sheetIterator() {
  const id = "XXXXXXXXXXXXXXX"; // ID du dossier à scanner 
  const folder = DriveApp.getFolderById(id);
  const files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
  while (files.hasNext()){
    var file = files.next();
    var spreadsheet = SpreadsheetApp.openById(file.getId());
    var sheets = spreadsheet.getSheets();
    Logger.log("Fichier: " + file.getName());
    while (sheets.length > 0) {
      var sheet = sheets.pop();
      Logger.log(" - Feuille: " + sheet.getName());
    }
  }
}

En gros, il mets dans la variable files tous les fichiers sheet, puis les ouvre un par un dans une seconde boucle afin d'afficher leurs onglets.

Merci pour ce code, il ne m’aide pas bcp car c’est exactement ce que je fais mais c’est bcp trop long.

On n’a pas besoin de fermer les documents ouverts à la suite ?

Bonjour,

Chez moi ça met 1 seconde par fichier sheet et je n'ai rien à fermer une fois le script fini.

Rechercher des sujets similaires à "ouverture documents chaine"