2015-05-14 3 views
0

https://support.google.com/docs/answer/91588?hl=enУведомление по электронной почте в Google Apps Script

У меня есть лист, где клетки заполняются данными, которые тянули с помощью Apps Script, которые они получают от веб-сайта. Иногда они тянут одни и те же данные, иногда нет. В старой версии Sheets я использую, чтобы иметь возможность получать электронные письма, когда данные только «меняются» на другое значение. Теперь с новыми листами я получаю электронное письмо, когда новые данные вставляются в ячейки, хотя его точные данные ... и я не могу больше задавать его для диапазонов, только весь документ , Есть ли простой способ наблюдать за ячейками, когда данные меняются, а затем отправляются сами по электронной почте?

+0

Вы пытались включить функцию электронной почты в свой onEdit()? Пожалуйста, сообщите нам, если вы делали какие-либо попытки по этому поводу. – pointNclick

+0

У меня нет. Пока еще не очень хорошо, вот мой лист tho: https://docs.google.com/spreadsheets/d/12BBrYvDiPHhmy11dcWmqpGV065gihQy75Tspx-UfnAE/edit#gid=0 – Aaron

+1

Прочтите ссылки, которые я привел в ответе ниже. Они должны помочь вам. Они именно то, что вам нужно. Затем, если вы застряли, создайте новый вопрос, разместите свой код, и мы сможем помочь вам решить его дальше. – pointNclick

ответ

1

This очень похож на то, что вы пытаетесь сделать.

Для проверки того, действительно ли значение изменилось после редактирования, this предоставляет вам всю необходимую информацию. Следовательно, вы бы знали, является ли новое значение тем же или нет. Реализация «обходного пути», о котором говорилось во второй ссылке, я смог сравнить и отправить электронное письмо себе, если значение изменилось. Инициируйте триггер onEdit, который отключается для вашей функции onEdit, которая использует эти строки после прохождения всех проверок.

var email = "[email protected]"; 
MailApp.sendEmail(email, "TriggerMail", "A change has occurred in the Sheet"); 

ПРИМЕЧАНИЕ: Это только посылает вам «уведомление» вроде электронной почты, но вы можете даже включать измененные значения в электронной почте легко, просто следуя tutorial.

+0

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

+0

Попросите функцию onOpen скопировать данные на другой лист. Это обеспечит обновление ваших данных на другом листе до тех пор, пока кто-либо не изменит что-либо на листе. Когда какие-либо изменения сделаны, получите диапазон для изменений, сделанных с помощью [e.range] (https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events). Получите значения на другом листе для того же диапазона и сравните их. Однако вам придется придумать стратегию для сценария, в который строки вставлены в ваш лист. Это может послужить основой для нового вопроса. – pointNclick