इस तरह के उद्देश्य के लिए एप्स स्क्रिप्ट के उपयोग को स्पष्ट करने के लिए, मैंने एक फ़ंक्शन लिखा जो किसी दस्तावेज़ में चयनित मानों को प्रस्तुत करता है: या तो एक तालिका में, या एक पैराग्राफ में, या कई पैराग्राफों में, आदि।
यह "कस्टम" के तहत पाए जाने वाले मेनू कमांड "सम चयनित" द्वारा लगाया जाता है; दस्तावेज़ को खोलने पर यह मेनू आइटम बनाया जाता है। चुनाव का पाठ व्हॉट्सएप द्वारा विभाजित किया गया है, और फिर प्रत्येक टुकड़े को एक संख्या (यदि संभव हो) के रूप में व्याख्या की गई है। ऐसे नंबर जोड़े जाते हैं और परिणाम उपयोगकर्ता को एक 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);
}
}