Để minh họa việc sử dụng Apps Script cho mục đích như vậy, tôi đã viết một hàm tính tổng các giá trị được chọn trong một tài liệu: trong bảng hoặc trong một đoạn hoặc trong một vài đoạn, v.v.
Nó được gọi bằng lệnh menu "Sum được chọn", được tìm thấy trong "Tùy chỉnh"; mục menu này được tạo khi tài liệu được mở. Văn bản bầu cử được phân chia theo khoảng trắng, và sau đó mỗi phần được hiểu là một số (nếu có thể). Những số như vậy được thêm vào và kết quả được hiển thị cho người dùng bằng một alert
hộp thoại. (Tôi đã cân nhắc việc chèn nó vào tài liệu, nhưng không có nơi nào tự nhiên cho nó: khi người dùng đang chọn văn bản, vị trí con trỏ của họ sẽ bị mất.)
Đây là một tính toán một lần; nếu các giá trị được thay đổi, người ta sẽ cần phải thực hiện lại.
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);
}
}