Как обновить ячейку в Google Spreadsheet?

8

У меня есть столбец в Google Spreadsheet, который вызывает внешний веб-сервис с использованием URLFetch в Google Script. Ячейка использует два параметра в строке этой ячейки. После того, как произойдет изменение, при котором эти два параметра будут возвращать другое значение, если при повторной отправке в веб-службу ячейка сохранит кэшированное значение. Я знаю, что он кэшируется, потому что, если я скопирую и вставлю строку в другую строку, вычисленные значения веб-службы изменятся на правильные.

Есть ли способ заставить строку или ячейку в электронной таблице Google пересчитать ее значение, особенно если она использует внешний веб-сервис в пользовательской функции?

Capn
источник
Я знаю, что могу обновить все ячейки, отредактировав сценарий или отсортировав данные, но я ищу что-то более тонко настроенное.
Capn
Вы пробовали F5?
Джейкоб Ян Туинстра
Да, и ctrl-F5, только начали закрывать и открывать заново, когда мне нужно было обновить его, не думали об этом, когда я впервые добавлял все данные. После того, как он стал больше добавлять строку каждые несколько дней, он не стал таким уж большим делом.
'15
Ctrl-R пересчитает формулы ... аналогично F9 в Excel.
Гэри В.
Сложно поместить это в сценарий, о котором спрашивает вопрос.
Ченмунка

Ответы:

4

Добавьте следующую строку кода:

SpreadsheetApp.flush()

Смотрите ссылку: флеш

Джейкоб Ян Туинстра
источник
До тех пор, пока не появится команда, которая очистит одну ячейку, столбец или строку, я думаю, что это сложный подход, который мне придется использовать. Лучше всего вызывать его по необходимости в одной ячейке вручную, когда я хочу обновить все данные (F5 и ctrl-F5 этого не делают, только открывать и закрывать это будут), так как каждый раз, когда он вызывается, возможно, возникнет непреднамеренный зацикливание и дублирование работы при первом открытии листа.
'14
5

Я пришел сюда, чтобы найти ответ и для той же ситуации (вызов данных из внешнего ресурса), но с тех пор разработал альтернативный метод, который работает, поэтому я решил поделиться.

Это ни в коем случае не технически подкованный способ сделать это, но если вы удалите ячейку, а затем отмените ее, она перезагрузится.

Работает угощение.

LBanh
источник
1
Как вы работаете с этим в сценарии?
Эль
вау, это на самом деле работает! Обратите внимание, что вам нужно подождать несколько секунд, прежде чем удалять, иначе это не сработает
Хиббем