Как поймать последнее обновление в листе
У меня есть три формы Google, которые представляют данные на другой лист в электронной таблице. Google Forms записывают отметку времени в первом столбце при отправке данных. Моя вызванная функция отправляет уведомление по электронной почте о отправке данных в электронную таблицу из GForm. Мне нужно различное содержание уведомления в зависимости от листа таблицы, куда отправляются данные.
Я думаю об этом:
- получить последнее обновление таблицы
- переключить первый лист на лист действий
- найти дату, равную данным последнего обновления в листе действий, если дата не установлена, переключиться на следующий лист и найти дату последнего обновления...... если дата основана
- получить название листа действий
- отправить уведомление о содержании
Итак, думаю, что это слишком сложно. Конечно, я могу создать много таблиц со многими сценариями, и каждый сценарий будет отправлять различные уведомления, но это не эргономично. Спасибо!
2 ответа
В случае, приходящем из ваших форм, вы можете получить метку времени и номер строки, в которой записан ответ. Я полагаю, что с обоими критериями не будет слишком сложно найти правильный лист, просто изучите этот номер строки на каждом листе и сравните значения времени, если есть совпадение, то вы получите его!
Вы можете получить значения в eventinfo следующим образом:
Logger.log('row = '+e.range['rowEnd'] + ' timestamp = '+e.namedValues['Timestamp'] )
Я не тестировал дальше, поэтому, пожалуйста, обновите здесь, он работал как ожидалось (или нет).
Может быть, вы можете добавить триггер onEdit:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
var sheet_name = s.getName();
//you can also add a code to get row and col, timestamp, etc.
}
Примечание: не проверял этот код. Я полагаю, это то, что вы хотите.