Выполнить основные математические операции с содержимым документа Google (не электронной таблицы)

12

В Microsoft Word можно использовать очень простую формулу, например, =SUM(ABOVE)для отображения суммы столбца и =SUM(LEFT)т. Д. Можно ли сделать что-то подобное в Google Docs? Очевидно, это возможно в Google Spreadsheets, но мне нужно сделать это в таблице в документе.

Джонатан Дэй
источник

Ответы:

6

В настоящее время Google Документы (документы) не включают функцию для расчетов.

Альтернативой является использование надстройки или скрипта Google Apps для расширения встроенных функций Документов Google.

Ссылки
Расширяйте документы, листы и формы Google с помощью скрипта приложений - Справка редактора документов

Рубена
источник
3

Чтобы проиллюстрировать использование скрипта Apps для этой цели, я написал функцию, которая суммирует выбранные значения в документе: либо в таблице, либо в абзаце, либо в нескольких абзацах и т. Д.

Он вызывается командой меню «Выбранная сумма», которая находится в разделе «Пользовательский»; этот пункт меню создается при открытии документа. Текст выборов разделяется пробелами, а затем каждый фрагмент интерпретируется как число (если это возможно). Такие числа добавляются, и результат отображается пользователю в 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);
  }
}

источник
0

Используя надстройку «Обратимые формулы» - Sketch-n-Script, вы можете добавить формулы для отображения таблицы, а также для выполнения произвольных вычислений JavaScript на ней.

Напишите в своем документе:

expenses = ([10, 20, 30])
incomes = ([30, 20, “”])

=table([["Expenses", "Income"]].concat(rotate([expenses, incomes])))

Totals

=table([["Expenses", "Income"]].concat([[sum(expenses),sum(incomes)]]))

Нажмите на «Показать значения». Вы должны получить следующее - я добавил полужирный к «Итоги»:

оказание

URL надстройки: https://chrome.google.com/webstore/detail/formulas-for-google-docs/kgjbgmonlnhglokmfnpnklegakfknbeh

Отказ от ответственности: я автор этого дополнения. Отказ от ответственности: На данный момент пока невозможно визуализировать визуализированные таблицы. Я работаю над этим.

Микаэль Майер
источник
0

Я взял код user79865 и внес некоторые изменения.

Этот код может оценить любое простое уравнение из выделенного текста:

function onOpen() {  
  DocumentApp.getUi().createMenu('Custom')  
  .addItem('Evaluate', 'evaluate').addToUi()  
  .addToUi();
}

function evaluate() {      
  var selection = DocumentApp.getActiveDocument().getSelection();  
  if (selection) {  
    var element = selection.getRangeElements()[0];  
    var text = element.getElement().editAsText();  
    if (text) {  
      var str = text.getText();  
      if (element.isPartial()) {  
        str = str.slice(element.getStartOffset(), element.getEndOffsetInclusive() + 1);  
      }  
      var val = eval(str);  
      val = +val.toFixed(2)  
      DocumentApp.getUi().alert("Equation: " + str + "\nResult: " + val);                             
      //text.appendText('\nAppended text.');  
    }  
  }  
}

Также возможно раскомментировать последнюю строку, и код напишет ответ в документе.

Операторы, которые я использовал и работал хорошо:

  • + прибавление
  • Вычитание
  • * умножение
  • / разделение
  • ** Возведение
  • ( ) Номера групп в порядке операций
Рожерио
источник