Apps Komut Dosyasının bu amaçla kullanılmasını göstermek için, bir belgedeki seçili değerleri toplayan bir işlev yazdım: bir tabloda veya bir paragrafta veya birkaç paragrafta vb.
"Özel" altında bulunan "Toplam seçildi" menü komutu ile çağrılır; bu menü öğesi belge açıldığında oluşturulur. Seçim metni boşlukla ayrılır ve daha sonra her bir parça bir sayı olarak yorumlanır (mümkünse). Bu numaralar eklenir ve sonuç bir alert
iletişim kutusu ile kullanıcıya gösterilir . (Belgeye eklemeyi düşündüm, ancak bunun için doğal bir yer yok: bir kullanıcı metin seçtiğinde imleç konumu kaybolur.)
Bu bir defalık bir hesaplamadır; değerler değiştirilirse, tekrar yapılması gerekir.
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);
}
}