Pour gérer et analyser les données contenues dans une plage de cellules, indépendamment des autres données de la feuille de calcul, le plus simple consiste à utiliser un tableau. Cette section va vous montrer comment créer un tableau, y ajouter des données, le filtrer, y sélectionner des données et le transformer en un objet JSON.
Dans un premier temps, nous allons créer ce tableau :
Création du tableau
Ce code est disponible en cliquant ici
Voici le code utilisé :
$("#creation").click(() => tryCatch(creation)); async function creation() { await Excel.run(async function(context) { let feuille = context.workbook.worksheets.getActiveWorksheet(); // Création du tableau avec en-tête let t = feuille.tables.add("A1:C1", true); t.name = "ventes"; // Nom du tableau t.getHeaderRowRange().values = [["Formation", "Nombre", "Prix"]]; // En-têtes // Ajout de lignes à la fin du tableau ou index t.rows.add(null, [ ["Office 2016", 2, 1200], ["Office 2019", 3, 1400], ["Office 2016", 1, 1200], ["Windows 10", 1, 950], ["Office 2019", 3, 1400], ["Windows 10", 9, 950], ["Office 2019", 2, 1400] ]); }); }
Après avoir récupéré la feuille active :
let feuille = context.workbook.worksheets.getActiveWorksheet();
La méthode tables.add() est utilisée pour créer la ligne d’en-tête du tableau. La valeur true du deuxième paramètre indique qu’il s’agit d’une ligne d’en-tête :
let t = feuille.tables.add("A1:C1", true);
La propriété name donne un nom au tableau :
t.name = "ventes";
Enfin, les valeurs sont affectées aux cellules avec la méthode getHeaderRowRange() :
t.getHeaderRowRange().values = [["Formation", "Nombre", "Prix"]];
Les lignes de données sont ajoutées avec la méthode rows.add(). Le premier paramètre initialisé à null provoque l’ajout des données après la ligne de titre. Les données sont passées à la fonction sous la forme d’un tableau de tableaux :
t.rows.add(null, [ ["Office 2016", 2, 1200], ["Office 2019", 3, 1400], ["Office 2016", 1, 1200], ["Windows 10", 1, 950], ["Office 2019", 3, 1400], ["Windows 10", 9, 950], ["Office 2019", 2, 1400] ]);