Para ilustrar o uso do Apps Apps para esse fim, escrevi uma função que soma valores selecionados em um documento: em uma tabela ou em um parágrafo ou em vários parágrafos, etc.
É chamado pelo comando de menu "Soma selecionada", encontrado em "Personalizado"; esse item de menu é criado quando o documento é aberto. O texto da eleição é dividido por espaços em branco e, em seguida, cada peça é interpretada como um número (se possível). Esses números são adicionados e o resultado é exibido ao usuário por uma alert
caixa de diálogo. (Considerei inseri-lo no documento, mas não há um local natural para ele: quando um usuário seleciona texto, sua posição do cursor é perdida.)
Este é um cálculo único; se os valores forem alterados, seria necessário executá-lo novamente.
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);
}
}