Vous savez maintenant sélectionner toutes sortes de plages de cellules. Voyons comment lire le contenu des cellules sélectionnées.
Nous allons travailler avec ces données :
Le but du jeu va être de récupérer les valeurs et les formules contenues dans ce tableau, sachant que la colonne D contient des formules du type =B2*C2 (pour la cellule D3).
Pour cela, vous chargerez tour à tour les propriétés values, text, formulas et formulasR1C1 :
- values : Valeurs brutes des cellules.
- text : valeurs textuelles des cellules.
- formulas : formules en notation A1 (lettre pour la colonne, chiffre pour la ligne).
- formulasR1C1 : formules en notation R1C1 (index relatifs de la ligne et de la colonne).
Voici le code utilisé :
async function run() { await Excel.run(async function(context) { const ws = context.workbook.worksheets.getActiveWorksheet(); // feuille active let plage = ws.getRange('A1:D6'); plage.load('values'); await context.sync(); console.log(plage.values); //Toutes les données de la plage sous la forme array de array console.log(plage.values[1]); // La deuxième ligne (basé 0) sous la forme d'un array console.log(plage.values[1][0]); // La première cellule de la deuxième ligne (basé 0) }); }
Et voici le résultat dans la console :
[ ["Référence", "HT", "Quantité", "TTC"], ["A34", 120.5, 12, 1446], ["B18", 45.6, 45, 2052], ["A66", 12.25, 120, 1470], ["C42", 146.65, 26, 3812.9], ["G29", 10, 84, 840] ] ["A34", 120.5, 12, 1446] A34
Comme vous le voyez :
- values retourne toutes les données de la plage sous la forme d’un tableau de tableaux.
- values[1] retourne la deuxième ligne du tableau.
- values[1][0] retourne la première cellule de la deuxième ligne du tableau.
Remplacez values par text dans la méthode load() et dans les console.log() et vous obtiendrez ce résultat :
[ ["Référence", "HT", "Quantité", "TTC"], ["A34", "120,50", "12", "1446,00"], ["B18", "45,60", "45", "2052,00"], ["A66", "12,25", "120", "1470,00"], ["C42", "146,65", "26", "3812,90"], ["G29", "10,00", "84", "840,00"] ] ["A34", "120,50", "12", "1446,00"] A34
Remplacez text par formulas dans la méthode load() et dans les console.log() et vous obtiendrez ce résultat :
[ ["Référence", "HT", "Quantité", "TTC"], ["A34", 120.5, 12, "=B2*C2"], ["B18", 45.6, 45, "=B3*C3"], ["A66", 12.25, 120, "=B4*C4"], ["C42", 146.65, 26, "=B5*C5"], ["G29", 10, 84, "=B6*C6"] ] ["A34", 120.5, 12, "=B2*C2"] A34
Enfin, remplacez formulas par formulasR1C1 dans la méthode load() et dans les console.log() et vous obtiendrez ce résultat :
[ ["Référence", "HT", "Quantité", "TTC"], ["A34", 120.5, 12, "=RC[-2]*RC[-1]"], ["B18", 45.6, 45, "=RC[-2]*RC[-1]"], ["A66", 12.25, 120, "=RC[-2]*RC[-1]"], ["C42", 146.65, 26, "=RC[-2]*RC[-1]"], ["G29", 10, 84, "=RC[-2]*RC[-1]"] ] ["A34", 120.5, 12, "=RC[-2]*RC[-1]"] A34
Remarque
Petite précision sur la notation RC[-1] : cela signifie la cellule située sur la même ligne (R) et sur la colonne précédente (C[-1]).
Le tableau ci-après vous permettra de comparer plus facilement les données contenues dans les propriétés values, text, formulas et formulasR1C1 :
values | text | formulas | formulasR1C1 |
« Référence » | « Référence » | « Référence » | « Référence » |
« HT » | « HT » | « HT » | « HT » |
« Quantité » | « Quantité » | « Quantité » | « Quantité » |
« TTC » | « TTC » | « TTC » | « TTC » |
34 | « 34 » | 34 | 34 |
120.5 | « 120.5 » | 120.5 | 120.5 |
12 | « 12 » | 12 | 12 |
1446 | « 1446 » | = »B2*C2″ | « =RC[-2]*RC[-1] » |
« B18 » | « B18 » | B18 | B18 |
45.6 | « 45.6 » | 45.6 | 45.6 |
45 | « 45 » | 45 | 45 |
2052 | « 2052 » | = »B3*C3″ | « =RC[-2]*RC[-1] » |
« A66 » | « A66 » | A66 | A66 |
12.25 | « 12.25 » | 12.25 | 12.25 |
120 | « 120 » | 120 | 120 |
1470 | « 1470 » | = »B4*C4″ | « =RC[-2]*RC[-1] » |
« C42 » | « C42 » | C42 | C42 |
146.65 | « 146.65 » | 146.65 | 146.65 |
26 | « 26 » | 26 | 26 |
3812.9 | « 3812.9 » | = »B5*C5″ | « =RC[-2]*RC[-1] » |
« G29 » | « G29 » | G29 | G29 |
10 | « 10 » | 10 | 10 |
84 | « 84 » | 84 | 84 |
840 | « 840 » | = »B6*C6″ | « =RC[-2]*RC[-1] » |