Pour illustrer l'utilisation d'Apps Script à cette fin, j'ai écrit une fonction qui additionne les valeurs sélectionnées dans un document: soit dans un tableau, soit dans un paragraphe, soit dans plusieurs paragraphes, etc.
Elle est invoquée par la commande de menu "Sum selected", trouvée sous "Custom"; cet élément de menu est créé à l'ouverture du document. Le texte de l'élection est divisé par des espaces, puis chaque morceau est interprété comme un nombre (si possible). Ces numéros sont ajoutés et le résultat est affiché à l'utilisateur par une alert
boîte de dialogue. (J'ai envisagé de l'insérer dans le document, mais il n'y a pas de place naturelle pour lui: lorsqu'un utilisateur sélectionne du texte, sa position de curseur est perdue.)
Il s'agit d'un calcul unique; si les valeurs sont modifiées, il faudrait recommencer.
function onOpen() {
DocumentApp.getUi().createMenu('Custom').addItem('Sum selected', 'sum').addToUi();
}
function sum() {
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var elements = selection.getRangeElements();
var s = 0;
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var text = element.getElement().editAsText();
if (text) {
var str = text.getText();
if (element.isPartial()) {
str = str.slice(element.getStartOffset(), element.getEndOffsetInclusive() + 1);
}
var pieces = str.split(/\s+/);
for (var j = 0; j < pieces.length; j++) {
s += (parseFloat(pieces[j], 10) ? parseFloat(pieces[j], 10) : 0);
}
}
}
DocumentApp.getUi().alert(s);
}
}