Как обновить значение ячейки листа в скрипте Google Apps

я экспериментирую с Blockspring который предоставляет надстройку Google Sheets, которая может, например, запускать функцию, которая возвращает данные из веб-сервиса, например

=BLOCKSPRING("get-stock-current-stats", "ticker", "MSFT")

Я хочу обновить данные ячейки, но не вижу вызова "обновить" в документах.

function onOpen() {
  createTimeDrivenTriggers()
}

function createTimeDrivenTriggers() {
  // Trigger every minute
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyMinutes(1)
      .create();

}

function myFunction() {
  Logger.log('I ran'); // can see this in the logs
  SpreadsheetApp.getActiveSheet().getRange('B4').getValue() //presumably returns a value to the script

}

2 ответов


использовать flush() способ:

Документация Google

SpreadsheetApp.flush();

цитата из документации:

применяет все ожидающие изменения электронной таблицы

если в таблице не было изменений, но вы хотите заставить формулы пересчитать, вам нужно будет внести изменения, а затем использовать SpreadsheetApp.flush();

например, вы можете получить значение из ячейки A1, а затем установить то же значение в ячейку A1. Итак, есть нет шансов потерять данные, потому что вы получаете и устанавливаете одно и то же значение. Изменение позволяет. SpreadsheetApp.flush(); пересчитать все формулы.


выделите ячейку с формулой или несколько ячеек с формулами Из меню выберите: Add-ons > Blockspring > Refresh Selected Cells

надеюсь, что это поможет