Étendre les fonctionnalités de Google Sheets

Google Apps Script vous permet d'effectuer de nouvelles actions intéressantes avec Google Sheets. Vous pouvez utiliser Apps Script pour ajouter des menus personnalisés, des boîtes de dialogue et des barres latérales à Google Sheets. Il vous permet également d'écrire des fonctions personnalisées pour Sheets, ainsi que d'intégrer Sheets à d'autres services Google tels que Agenda, Drive et Gmail.

La plupart des scripts conçus pour Google Sheets manipulent des tableaux pour interagir avec les cellules, les lignes et les colonnes d'une feuille de calcul. Si vous ne connaissez pas les tableaux en JavaScript, Codecademy propose un excellent module de formation sur les tableaux. (Notez que ce cours n'a pas été développé par Google et n'est pas associé à Google.)

Pour une introduction rapide à l'utilisation d'Apps Script avec Google Sheets, consultez le guide de démarrage rapide de 5 minutes sur les macros, les menus et les fonctions personnalisées.

Commencer

Apps Script inclut des API spéciales qui vous permettent de créer, de lire et de modifier des feuilles de calcul Google Sheets de façon programmatique. Apps Script peut interagir avec Google Sheets de deux manières principales: tout script peut créer ou modifier une feuille de calcul si l'utilisateur du script dispose des autorisations appropriées pour la feuille de calcul. Un script peut également être lié à une feuille de calcul, ce qui lui donne des capacités spéciales pour modifier l'interface utilisateur ou répondre lorsque la feuille de calcul est ouverte. Pour créer un script lié, sélectionnez Extensions > Apps Script (Extensions > Apps Script) dans Google Sheets.

Le service de feuille de calcul traite Google Sheets comme une grille, fonctionnant avec des tableaux à deux dimensions. Pour récupérer les données de la feuille de calcul, vous devez accéder à la feuille de calcul dans laquelle elles sont stockées, obtenir la plage de la feuille de calcul qui contient les données, puis obtenir les valeurs des cellules. Apps Script facilite l'accès aux données en lisant les données structurées dans la feuille de calcul et en créant des objets JavaScript pour elles.

Lire des données

Supposons que vous disposiez d'une liste de noms et de numéros de produits que vous stockez dans une feuille de calcul, comme illustré dans l'image ci-dessous.

L'exemple ci-dessous montre comment récupérer et consigner les noms et numéros de produits.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

Afficher les journaux

Pour afficher les données enregistrées, cliquez sur Journal d'exécution en haut de l'éditeur de script.

Écrire des données

Pour stocker des données, telles qu'un nouveau nom et un nouveau numéro de produit dans la feuille de calcul, ajoutez le code suivant à la fin du script.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

Le code ci-dessus ajoute une ligne en bas de la feuille de calcul, avec les valeurs spécifiées. Si vous exécutez cette fonction, une nouvelle ligne est ajoutée à la feuille de calcul.

Menus et interfaces utilisateur personnalisés

Vous pouvez personnaliser Google Sheets en ajoutant des menus, des boîtes de dialogue et des barres latérales personnalisés. Pour découvrir les principes de base de la création de menus, consultez le guide des menus. Pour découvrir comment personnaliser le contenu d'une boîte de dialogue, consultez le guide du service HTML.

Vous pouvez également associer une fonction de script à une image ou un dessin dans une feuille de calcul. La fonction s'exécutera lorsqu'un utilisateur cliquera sur l'image ou le dessin. Pour en savoir plus, consultez Images et dessins dans Google Sheets.

Si vous prévoyez de publier votre interface personnalisée dans le cadre d'un composant complémentaire, suivez le guide de style pour assurer la cohérence avec le style et la mise en page de l'éditeur Google Sheets.

Se connecter à Google Forms

Apps Script vous permet d'associer Google Forms à Google Sheets via les services Forms et Spreadsheet. Cette fonctionnalité peut créer automatiquement un formulaire Google Forms à partir des données d'une feuille de calcul. Apps Script vous permet également d'utiliser des déclencheurs, tels que onFormSubmit, pour effectuer une action spécifique après qu'un utilisateur a répondu au formulaire. Pour en savoir plus sur l'association de Google Sheets à Google Forms, essayez la procédure de démarrage rapide en cinq minutes sur la gestion des réponses pour Google Forms.

Mise en forme

La classe Range dispose de méthodes telles que setBackground(color) pour accéder au format d'une cellule ou d'une plage de cellules et le modifier. L'exemple suivant montre comment définir le style de police d'une plage:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

Validation des données

Apps Script vous permet d'accéder aux règles de validation des données existantes dans Google Sheets ou de créer des règles. Par exemple, l'exemple suivant montre comment définir une règle de validation des données n'autorisant que les nombres compris entre 1 et 100 dans une cellule.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

Pour en savoir plus sur l'utilisation des règles de validation des données, consultez les pages SpreadsheetApp.newDataValidation(), DataValidationBuilder et Range.setDataValidation(rule).

Graphiques

Apps Script vous permet d'intégrer des graphiques dans une feuille de calcul qui représentent les données d'une plage spécifique. L'exemple suivant génère un graphique à barres intégré, en supposant que vous disposiez de données exploitables dans les cellules A1:B15:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

Pour en savoir plus sur l'intégration d'un graphique dans votre feuille de calcul, consultez EmbeddedChart et les outils de création de graphiques spécifiques, tels que EmbeddedPieChartBuilder.

Fonctions personnalisées dans Google Sheets

Une fonction personnalisée est semblable à une fonction de feuille de calcul intégrée telle que =SUM(A1:A5), sauf que vous définissez le comportement des fonctions avec Apps Script. Par exemple, vous pouvez créer une fonction personnalisée, in2mm(), qui convertit une valeur en pouces en millimètres, puis utiliser la formule dans votre feuille de calcul en saisissant =in2mm(A1) ou =in2mm(10) dans une cellule.

Pour en savoir plus sur les fonctions personnalisées, essayez la procédure de démarrage rapide de cinq minutes sur les menus et les fonctions personnalisées, ou consultez le guide détaillé sur les fonctions personnalisées.

Macros

Les macros sont un autre moyen d'exécuter du code Apps Script à partir de l'interface utilisateur de Google Sheets. Contrairement aux fonctions personnalisées, vous les activez à l'aide d'un raccourci clavier ou via le menu Google Sheets. Pour en savoir plus, consultez la section Macros Google Sheets.

Modules complémentaires pour Google Sheets

Les modules complémentaires sont des projets Apps Script empaquetés spécialement qui s'exécutent dans Google Sheets et peuvent être installés depuis la plate-forme de téléchargement de modules complémentaires Google Sheets. Si vous avez développé un script pour Google Sheets et que vous souhaitez le partager avec le monde entier, Apps Script vous permet de publier votre script en tant que module complémentaire afin que d'autres utilisateurs puissent l'installer depuis la plate-forme de modules complémentaires.

Déclencheurs

Les scripts liés à un fichier Google Sheets peuvent utiliser des déclencheurs simples tels que les fonctions onOpen() et onEdit() pour répondre automatiquement lorsqu'un utilisateur disposant d'un accès en modification à la feuille de calcul l'ouvre ou la modifie.

Comme les déclencheurs simples, les déclencheurs installables permettent à Google Sheets d'exécuter automatiquement une fonction lorsqu'un événement particulier se produit. Cependant, les déclencheurs installables offrent plus de flexibilité que les déclencheurs simples et sont compatibles avec les événements suivants: ouverture, modification, modification, envoi de formulaire et basés sur le temps (horloge).