Чтобы проиллюстрировать использование скрипта Apps для этой цели, я написал функцию, которая суммирует выбранные значения в документе: либо в таблице, либо в абзаце, либо в нескольких абзацах и т. Д.
Он вызывается командой меню «Выбранная сумма», которая находится в разделе «Пользовательский»; этот пункт меню создается при открытии документа. Текст выборов разделяется пробелами, а затем каждый фрагмент интерпретируется как число (если это возможно). Такие числа добавляются, и результат отображается пользователю в alert
диалоговом окне. (Я подумал вставить его в документ, но для этого нет естественного места: когда пользователь выбирает текст, его позиция курсора теряется.)
Это однократный расчет; если значения изменились, нужно было бы выполнить это снова.
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);
}
}