Google Apps Script
Retrouvez nos trucs et astuces Google Workspace classés par application.
Débutant Gérer les configurations de script avec ScriptProperties
Stockez et accédez facilement aux paramètres de configuration de vos scripts Google Apps Script sans modifier le code, en utilisant le service ScriptProperties.
PropertiesService. Cela facilite la maintenance et le déploiement de vos scripts dans différents environnements.Définir une propriété :
function setMyConfig() {
const scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('ADMIN_EMAIL', 'admin@example.com');
scriptProperties.setProperty('SHEET_ID_DATA', '1ABC...XYZ');
Logger.log('Propriétés définies.');
}Récupérer une propriété :
function getMyConfig() {
const scriptProperties = PropertiesService.getScriptProperties();
const adminEmail = scriptProperties.getProperty('ADMIN_EMAIL');
const sheetId = scriptProperties.getProperty('SHEET_ID_DATA');
Logger.log('Email Admin : ' + adminEmail);
Logger.log('ID Feuille : ' + sheetId);
}Vous pouvez également gérer ces propriétés via l'interface utilisateur d'Apps Script : ouvrez votre script, cliquez sur l'icône en forme d'engrenage "Paramètres du projet" (Project Settings), puis faites défiler jusqu'à "Propriétés du script" (Script properties). Vous pouvez y ajouter, modifier ou supprimer des propriétés manuellement.
Intermédiaire Mettre en place une gestion d'erreurs robuste avec notifications
Assurez la fiabilité de vos scripts Apps Script en implémentant une gestion d'erreurs avec des notifications automatiques par email en cas de problème.
try...catch et envoyez des notifications par email pour être alerté immédiatement.Exemple :
function myMonitoredFunction() {
try {
// Votre code qui pourrait potentiellement échouer
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Données');
if (!sheet) {
throw new Error('La feuille "Données" est introuvable.');
}
// ... le reste de votre logique ...
} catch (e) {
const scriptName = ScriptApp.getProjectKey();
const functionName = arguments.callee.name; // Ou simplement 'myMonitoredFunction'
const adminEmail = 'votre.email@example.com'; // Ou stocké dans ScriptProperties
const subject = `[ERREUR GAS] ${scriptName} - ${functionName}`;
const body = `Une erreur est survenue dans le script "${scriptName}", fonction "${functionName}" :
Message : ${e.message}
Nom : ${e.name}
Fichier : ${e.fileName}
Ligne : ${e.lineNumber}
Pile : ${e.stack}`;
MailApp.sendEmail(adminEmail, subject, body);
Logger.log(body); // Pour le journal d'exécution
}
}N'oubliez pas d'autoriser le script à envoyer des emails lors de la première exécution.
Intermédiaire Optimiser les performances avec les opérations par lots
Réduisez drastiquement le temps d'exécution de vos scripts Google Apps Script en utilisant des opérations par lots pour interagir avec les services Google.
Mauvaise pratique (lent) :
function slowUpdate() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for (let i = 1; i <= 100; i++) {
sheet.getRange(i, 1).setValue('Value ' + i);
}
}Bonne pratique (rapide) :
function fastUpdate() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = [];
for (let i = 0; i < 100; i++) {
data.push(['Value ' + (i + 1)]);
}
sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}Cette astuce est applicable à presque tous les services Google Workspace. Collectez vos données, puis effectuez une seule opération de lecture ou d'écriture en bloc.