Numeriblog Google Workspace Google Apps Script, la puissance des outils Google à portée de scripts Google Sheets et Google Apps Script : optimisation du temps de traitement

Google Sheets et Google Apps Script : optimisation du temps de traitement

Vous avez re-utilisé ou écrit un script pour manipuler vos classeurs et vous trouvez que son exécution prend trop de temps ? Voici quelques pistes d’amélioration à considérer pour réduire le temps d’exécution. Première piste […]

personnes ont consulté cet article

6 minutes

Rédigé par Christelle Legrand - il y a 4 ans et modifié le 03/08/2023 à 09:46

Ce que vous allez découvrir

  • Première piste : la lecture des données
  • Deuxième piste : l'écriture des données
  • Troisième piste : mise en mémoire des données
  • Quatrième piste : exécuter son script en plusieurs étapes

Google Sheets et Google Apps Script : optimisation du temps de traitement

Vous avez re-utilisé ou écrit un script pour manipuler vos classeurs et vous trouvez que son exécution prend trop de temps ? Voici quelques pistes d’amélioration à considérer pour réduire le temps d’exécution.

Première piste : la lecture des données

Quand on débute, on a généralement tendance à vouloir lire uniquement les valeurs qui nous intéressent dans les feuilles de calcul mais on se retrouve rapidement à faire des lectures multiples d’une même feuille et il devient alors plus intéressant de faire une lecture unique de la plage de données complète et d’y piocher les valeurs dont on a besoin.

Imaginons que nous voulions lire la valeur de chaque cellule de la colonne A pour la feuille de calcul suivante :

Au lieu de faire des mutiples getValue() qui prend ici en moyenne plus de deux secondes :

function lectureNonOptimisee() {
console.log(« Récupération de chaque celulle individuellement puis lecture »)
const start = new Date();
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(« FeuillePerf »);
for (let i=1;i<=sheet.getLastRow();i++) {
const valeur_premiere_colonne = sheet.getRange(« A »+i).getValue();
console.log(valeur_premiere_colonne);
}
const current = new Date();
const elapsedTime = current.getTime() – start.getTime();
console.log(« Il a fallu « +elapsedTime+ » ms pour lire les valeurs de la première colonne »);
}

Il est plus intéressant de faire un unique getValues() de la colonne

Veuillez prendre un abonnement Premium pour accéder à cette ressource

Image de référence

L’accès à cette ressource se fait en vous abonnant à Premium. Vous donnant également accès à toutes les autres ressources étiquettées « Premium ».

Je m’abonne à PremiumJe me connecte

Paywall image

Cet article est réservé aux abonnés. Pourquoi ?

Fournir tout ce contenu nous demande beaucoup de temps, des ressources et une veille permanente. Accédez à ce contenu en rejoignant notre super communauté, pour tous nous remercier 💪

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Articles similaires

  • Articles connexes
  • Plus de l'auteur

Rédacteur

S’abonner
Notification pour
5 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires