Щоб проілюструвати використання програми Script для цієї мети, я написав функцію, яка підсумовує вибрані значення в документі: або в таблиці, або в абзаці, або в декількох абзацах і т.д.
Він викликається командою меню "Сума вибрана", що знаходиться в розділі "Спеціальні"; цей пункт меню створюється при відкритті документа. Текст виборів розділяється пробілом, а потім кожен твір інтерпретується як число (якщо можливо). Такі цифри додаються і результат відображається користувачеві в 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);
}
}