Google Apps Script et Google Drive : fonctions pour gérer les dossiers et les fichiers de Drive – série de scripts 2

0

Vous avez besoin de supprimer d’un coup tous les fichier Sheets du drive datant d’il y a plus de deux ans et qui contiennent le mot “archive” ? Vous avez besoin de récupérer la liste des dossiers et des fichiers appartenant à certaines personnes dans un tableau Sheets ? …
Google Drive et Google Apps Script s’associent pour faciliter et automatiser des manipulations parfois répétitives. Gilbert Roinel vous a concocté une sélection applicable rapidement depuis votre Drive !

Suivez le guide pour prendre le contrôle sur votre espace de stockage préféré !

Cet article s’adresse à tous ceux qui souhaitent s’approprier les possibilités d’intervention sur une application, en particulier sur Google Drive, avec une toute petite appétence minimum pour le codage, sans pour autant avoir forcément pratiqué Apps Script et Java Script.

  1. Série 1 : Lister les dossiers ou les fichiers
  2. Série 2 : Créer des fichiers


Les scripts – série 2

Cette série propose de créer des listes de fichiers dans une feuille de calcul selon plusieurs critères.

Numeriblog décline toute responsabilité en cas de dommage subit suite à une mauvaise utilisation d’un de ces scripts.

1. Lister tous les fichiers Sheets de votre Drive dans une feuille de calcul

Ce script créé une feuille de calcul et y inscrit tous les fichiers Google Sheets présents dans votre Drive, en listant : le nom du fichier, le propriétaire (sauf si la feuille est dans un Drive partagé), l’URL et la date de dernière modification.

Cerise on the cake, il trie les informations par ordre alphabétique.

function listeSheets(){
  // Créer une feuille de calcul à la racine (voir les scripts sur la création de fichiers)
  var ss = SpreadsheetApp.create("Résumé des Sheets") ; 

  // ouvrir la feuille de calcul
  var feuille = SpreadsheetApp.openById(ss.getId()).getActiveSheet();

  // Sélectionner tous les fichiers Sheets
  var files = DriveApp.getFilesByType(MimeType.GOOGLE_SHEETS); 
  var i = 0;  
   while (files.hasNext()) {
    var file = files.next();
      feuille.getRange(i + 1, 1).setValue(file.getName()); 
    
   // Si le propriétaire existe (sinon, c'est dans un Drive partagé...)
   if (file.getOwner() != null)
      {
       feuille.getRange(i + 1, 2).setValue(file.getOwner().getName());
      }
      feuille.getRange(i + 1, 3).setValue(file.getUrl());
      feuille.getRange(i + 1, 4).setValue(file.getLastUpdated());
    i++;
  }
 //tri sur la première colonne
  feuille.sort(1); 
}

Voici un exemple de résultat :

2. lister les Sheets et les Docs

Pratiquement identique au précédent, sauf qu’une premier boucle « for » permet de lister les Sheets et les Docs.

function listeSheetsOuDocs() {
  var ss = SpreadsheetApp.create("Résumé des Sheets ou Docs") ; 
  var feuille = SpreadsheetApp.openById(ss.getId()).getActiveSheet();
   
  var i =0
  var results = [];
  var types = [MimeType.GOOGLE_SHEETS,MimeType.GOOGLE_DOCS];
  for (var t in types) {
    var files = DriveApp.getFilesByType(types[t]);
    while (files.hasNext()) {
      var file = files.next();
      
      // Logger.log([file.getDateCreated(), file.getName(), file.getUrl()].join());
      feuille.getRange(i + 1, 1).setValue(file.getName());
      feuille.getRange(i + 1, 2).setValue(file.getMimeType());
      feuille.getRange(i + 1, 3).setValue(file.getUrl());
      i++
    }
   }
   //tri sur la première colonne
  feuille.sort(1); 
  }

3. Lister les images JPG de votre Drive

function listeImagesJpeg(){
  var ss = SpreadsheetApp.create("Résumé des Images JPEG") ; 
  var feuille = SpreadsheetApp.openById(ss.getId()).getActiveSheet();
   
  var i = 0
  // Lister les JPEG
  var jpegs = DriveApp.getFilesByType('image/jpeg');
  while (jpegs.hasNext()) {
    var jpeg = jpegs.next();
    Logger.log(jpeg.getSize());
    feuille.getRange(i + 1, 1).setValue(jpeg.getName());
    feuille.getRange(i + 1, 2).setValue(jpeg.getSize());
    feuille.getRange(i + 1, 3).setValue(jpeg.getUrl());
    i++
  }
  //tri sur la seconde colonne
  feuille.sort(2);
}

4. Lister dans une feuille Sheets la liste des fichiers contenant des mots spécifiques

toujours sur le même principe, il faut ici lister les fichiers répondant à certains critères avec la méthode « searchfiles ». Nous cherchons les fichiers contenant les mots « facture » et « 2020 ».

function listeFichiersTexte(){
   var ss = SpreadsheetApp.create("Résumé des sheets factures") ; 
   var feuille = SpreadsheetApp.openById(ss.getId()).getActiveSheet();
   var files = DriveApp.searchFiles("title contains 'Facture' and title contains '2020'");
    while (files.hasNext()) {
      var file = files.next();
      var data = [
        file.getName(),
        file.getUrl(),
        file.getMimeType()
      ];
      feuille.appendRow(data);
    }
 }

vous pouvez exclure des termes en ajoutant « not » devant l’instruction :

var files = DriveApp.searchFiles("title contains 'Facture' and not title contains '2020'");

Allez-vous utiliser ces fonctionnalités ? Pour quel besoin ? Avez-vous adapté le script à un cas particulier ? N’hésitez pas à nous laisser un commentaire 🙂

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.