ALL Apps Scripts

Script : backup des résultats d’un gform

Ecrit par Thierry

Gilbert ROINEL vous propose dans cet article un script permettant d’un clic d’avoir un backup des résultats d’un Google Form.

Il est parfois intéressant de pouvoir sauvegarder des réponses provenant d’un formulaire. Si ces réponses sont parfois nombreuses, il est dans ce cas bon de faire le ménage et de classer ces réponses dans un dossier spécifique du Drive.

Évidement il est possible de faire cela à la main (copier coller dans un autre onglet, exporter en .CSV ou orienter les résultats du form vers un nouveau tableur), mais pourquoi ne pas faire un petit script pour simplifier la chose et découvrir de nouvelles commandes.

Gilbert vous propose un script qui sauvegarde soit en PDF ou en Gsheet dans un répertoire nommé « Sauvegarde ».

C’est parti pour l’animation et ensuite les lignes de codes :

Pour le code, rdv sur ce document ou ci-dessous :

Il faut effectivement coller ce code dans le tableur associé au gform dans la partie outils/Scripts, effacer le code déjà présent dans l’éditeur de scripts et bien enregistrer et autoriser l’exécution du script. Vous retrouverez ensuite le fichier Gsheets fraîchement créé dans votre Drive.

 

//script Gilbert ROINEL 2017

 

function onOpen(e) {

 SpreadsheetApp.getUi() // Or DocumentApp or FormApp.

     .createMenu(‘Sauvegarde‘)

 .addItem(‘Sauvegarder ce fichier’, ‘executePr’)

 .addToUi();

}

 

function executePr(){

 //Obtenir la date de la feuille de calcul en cours

 var classeur = SpreadsheetApp.getActiveSpreadsheet();

 var ss = SpreadsheetApp.getActiveSheet();

 var dataRange = ss.getRange(1, 1, ss.getLastRow(), ss.getLastColumn());

 var myData = dataRange.getValues();

 var path = « Sauvegarde »;//modier ici le nom du Dossier, il sera créé s’il n’existe pas

 var folder = getDriveFolder(path);

//Créer un PDF (ou/et) une nouvelle feuille de calcul puis y coller les données

 //var newPDF =  folder.createFile(classeur.getAs(‘application/pdf’).setName(‘Sauvegarde du ‘+getDate()));// création du PDF

 var myfolder=DriveApp.getFoldersByName(folder).next();//Obtenir le premier dossier avec le nom de dossier voulu

 var file=SpreadsheetApp.create(‘Sauvegarde du ‘+getDate());

//var newSS = SpreadsheetApp.create(‘Sauvegarde du ‘+getDate());//  enregistrement du fichier dans la racine du Drive

//Copie le gsheet dans un répertoire spécifique du Drive

  file.getActiveSheet().getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);

 var copyFile=DriveApp.getFileById(file.getId());

  myfolder.addFile(copyFile);

  DriveApp.getRootFolder().removeFile(copyFile)

//Effacer la feuille d’origine sauf la ligne d’en-tête

ss.deleteRows(2, ss.getLastRow()-1);

 Browser.msgBox(‘Les données ont été enregistrées sous : Sauvegarde du ‘+getDate());

}

 

//Fonction pour obtenir la date et l’heure (heures d’hiver GMT+1 et été GMT+2)

function getDate(){

var d = new Date();

 var dateofDay = new Date(d.getTime());

 return Utilities.formatDate(dateofDay, « GMT+2 », « dd-MM-yyyy HH:mm:ss »);// heures d’hiver ou d’été modifier « GMT+2 » par « GMT+1 »

 //http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

}

 

function getDriveFolder(path) {

 var name, folder, search, fullpath;

  // Enleve les barres obliques supplémentaires et couper le path

 fullpath = path.replace(/^\/*|\/*$/g,  »).replace(/^\s*|\s*$/g,  »).split(« / »);

  // Commence toujours par la racine du Drive

 folder = DriveApp.getRootFolder();

  for (var subfolder in fullpath) {

name = fullpath[subfolder];

search = folder.getFoldersByName(name);

// Si le dossier n’existe pas, le créer au niveau actuel

folder = search.hasNext() ? search.next() : folder.createFolder(name);

  }

 return folder;

}

 

Chaque semaine découvrez un nouvel article sur les scripts. Avez-vous pensé à vous abonner à la newsletter hebdomadaire du blog pour recevoir chaque lundi les nouveautés, les trucs et astuces et bonnes pratiques ?

A propos de l'auteur

Thierry

Thierry VANOFFE, consultant, formateur, coach G Suite.
Passionné et fasciné par Google, ce blog me permet de partager cette passion et distiller tutos, trucs, astuces, guides sur les outils Google.
N'hésitez pas à me solliciter pour vos formations en ligne ou en présentiel.

Laisser un commentaire