Aby zilustrować użycie Apps Script do takiego celu, napisałem funkcję, która sumuje wybrane wartości w dokumencie: albo w tabeli, albo w akapicie, albo w kilku akapitach itp.
Jest on wywoływany przez polecenie menu „Suma wybrana”, znajdujące się w „Niestandardowe”; ten element menu jest tworzony po otwarciu dokumentu. Tekst wyborów jest dzielony spacją, a następnie każdy utwór jest interpretowany jako liczba (jeśli to możliwe). Takie liczby są dodawane, a wynik jest wyświetlany użytkownikowi w alert
oknie dialogowym. (Zastanawiałem się nad wstawieniem go do dokumentu, ale nie ma na to naturalnego miejsca: gdy użytkownik wybiera tekst, pozycja kursora jest tracona).
Jest to jednorazowa kalkulacja; jeśli wartości zostaną zmienione, należy wykonać to ponownie.
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);
}
}