Automatisation de l’extraction de fichiers Google Drive dans Google Sheets avec Apps Script

Si vous utilisez Google Drive pour stocker un grand nombre de fichiers, il peut être difficile de tous les suivre. Que se passerait-il si vous pouviez automatiquement extraire une liste complète de vos fichiers Drive et les transférer dans une feuille Google Sheets ? C’est exactement ce que permet de faire un script Google Apps Script que je vais vous présenter aujourd’hui.

Ce script vous permettra :

  • De lister tous les fichiers dont vous êtes propriétaire dans Google Drive.
  • D’utiliser ou de créer une feuille Google Sheets pour stocker ces fichiers.
  • De formater automatiquement la première ligne pour faciliter la lecture.
  • De geler la première ligne pour un confort de défilement.

Pourquoi automatiser cette tâche ?

Si vous travaillez régulièrement avec Google Drive, vous vous êtes peut-être retrouvé dans une situation où vous deviez suivre de nombreux fichiers. L’automatisation de cette tâche présente plusieurs avantages :

  • Améliorer la gestion des fichiers : À mesure que vous accumulez des fichiers dans Drive, il peut être utile d’avoir une vue d’ensemble pour mieux organiser et nettoyer votre espace.
  • Créer des rapports rapidement : Si vous travaillez en équipe ou partagez souvent des fichiers, générer un rapport sur les fichiers que vous possédez devient plus simple.
  • Conserver une sauvegarde des métadonnées : En cas de suppression ou de perte de fichiers, avoir une liste centralisée avec des informations telles que les URLs vous permet de réagir rapidement.

Le code du script

Voici le code complet que vous pouvez utiliser pour automatiser cette tâche dans Google Sheets. Ce script extrait les fichiers de Google Drive et les insère dans une feuille, tout en gérant les erreurs.

function obtenirMesFichiersDeDrive() {
    try {
        const mesFichiers = DriveApp.searchFiles('"me" in owners');
        const classeur = SpreadsheetApp.getActiveSpreadsheet();
        let feuille = classeur.getSheetByName("touslesfichiers");

        // Crée la feuille si elle n'existe pas
        if (!feuille) {
            feuille = classeur.insertSheet("touslesfichiers");
            Logger.log("Feuille 'touslesfichiers' créée car elle n'existait pas.");
        }

        feuille.clear();

        const lignes = [];
        lignes.push(["Nom", "Url", "ID", "Date de Création", "Type MIME", "Taille", "Description"]);

        let fichierCount = 0;

        while (mesFichiers.hasNext()) {
            const fichier = mesFichiers.next();
            if (fichier != null) {
                try {
                    const nom = fichier.getName() || "Nom indisponible";
                    const url = fichier.getUrl() || "URL indisponible";
                    const id = fichier.getId() || "ID indisponible";
                    const dateCreated = fichier.getDateCreated() || "Date de création indisponible";
                    const mimeType = fichier.getMimeType() || "Type MIME indisponible";
                    const taille = fichier.getSize() || "Taille indisponible";
                    const description = fichier.getDescription() || "Description indisponible";

                    lignes.push([nom, url, id, dateCreated, mimeType, taille, description]);
                    fichierCount++;
                } catch (e) {
                    Logger.log(`Erreur lors du traitement du fichier: ${fichier.getId()} - ${e.message}`);
                }
            }
        }

        if (fichierCount === 0) {
            Logger.log("Aucun fichier trouvé pour cet utilisateur.");
            return;
        }

        // Écrire les données sur la feuille
        feuille.getRange(1, 1, lignes.length, 7).setValues(lignes);
        Logger.log(`${fichierCount} fichiers traités et ajoutés à la feuille.`);

        // Figer la première ligne
        feuille.setFrozenRows(1);

        // Mettre en gras la première ligne (les en-têtes)
        feuille.getRange(1, 1, 1, 7).setFontWeight("bold");

    } catch (e) {
        Logger.log(`Erreur dans obtenirMesFichiersDeDrive: ${e.message}`);
    }
}

Explication du code

  1. Recherche des fichiers dans Google Drive
    Grâce à la fonction DriveApp.searchFiles('"me" in owners'), nous pouvons récupérer tous les fichiers dont nous sommes propriétaires. Le script stocke ces fichiers dans une variable.
  2. Création ou réutilisation de la feuille Google Sheets
    Avant d’insérer les fichiers dans la feuille Google Sheets, le script vérifie si la feuille appelée « touslesfichiers » existe déjà. Si elle n’existe pas, le script la crée automatiquement.
  3. Insertion des données dans la feuille
    Une fois la feuille prête, nous ajoutons une première ligne avec des en-têtes clairs, tels que « Nom », « URL », « ID », etc. Ensuite, le script parcourt chaque fichier trouvé et ajoute ses détails dans la feuille.
  4. Gestion des erreurs
    Nous avons inclus des blocs try-catch pour s’assurer que même si un fichier cause une erreur, le script continue à fonctionner normalement.
  5. Figer et formater la première ligne
    Pour rendre les en-têtes plus visibles, le script fige la première ligne et la met en gras. Cela rend l’affichage des données plus agréable, surtout lorsqu’on fait défiler la feuille.

Comment utiliser ce script ?

  1. Ouvrez Google Sheets et créez un nouveau classeur.
  2. Allez dans Extensions > Apps Script.
  3. Copiez-collez le code ci-dessus dans l’éditeur de script.
  4. Enregistrez et exécutez la fonction obtenirMesFichiersDeDrive.

Lorsque vous exécuterez ce script pour la première fois, il vous demandera des autorisations pour accéder à Google Drive et à Google Sheets. Assurez-vous d’accepter ces autorisations.

Conclusion

Ce script Google Apps Script est un excellent moyen d’automatiser la gestion de vos fichiers Google Drive dans Google Sheets. Que vous souhaitiez organiser votre Drive, créer des rapports de fichiers partagés ou sauvegarder des métadonnées, ce script peut vous aider à accomplir tout cela rapidement et efficacement.

L’une des grandes forces de ce script est sa flexibilité. Vous pouvez facilement le personnaliser pour répondre à vos besoins spécifiques. Vous pourriez par exemple ajouter des filtres pour ne lister que certains types de fichiers ou encore enrichir le rapport avec d’autres informations.


Soutenez mon travail

Si cet article vous a été utile et que vous souhaitez soutenir mon travail, vous pouvez me remercier en faisant un don via PayPal. Chaque contribution est grandement appréciée et m’aide à continuer à partager des astuces et conseils sur ce blog. Merci pour votre soutien !

L’Atelier Informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes.