Рубрика: Фишки
Добрый день, встала необходимость сделать общую таблицу в google docs, в которой, заносится разного рода информация каждым пользователем по очереди, но как узнать что кто то сделал изменение и следующем приходится, постоянно смотреть, бы ли ли сделаны правки добавилось, что либо, на помощь пришел вот такой Google Apps script который позволяет отследить изменения или правки в таблице, и отсылает на почту сообщение с правкой, можно указать только один столбец в таблице для отслеживания изменений как у меня в скрипте:
function goEmail(){
var ss = SpreadsheetApp.getActiveSheet();
//узнаем редактируемую ячейку
var r = SpreadsheetApp.getActiveRange();
//узнаем номер колонки
var cols = r.getColumn();
var rows = r.getRow();
//если колонка №19 то записываем коммент
if(cols==19){
var sheet = SpreadsheetApp.getActiveSheet();
//№
var pole1 = ss.getRange(rows,3).getValue();
var pole2 = ss.getRange(rows,5).getValue();
var pole3 = ss.getRange(rows,7).getValue();
var pole4 = ss.getRange(rows,19).getValue();
var email = "123@mail.ru";
var subject = "MSG: N:" + pole1 + ", Место:" + pole2 + ", " + pole3 + ", Начало:" + pole4;
var message = "№ " + pole1 + ", Место: " + pole2 + ", м: " + pole3 + ", Начало работ: " + pole4;
MailApp.sendEmail(email,subject,message);
}
}
Вполне простая функция, но все дело в триггере который надо прописать для функции и настроить чтобы она срабатывала при правке файла, а именно после того как в столбце 19 произошло событие, отправляется письмо на почту.
еще вариант но тут записывается время правки ячейки в комментарий
function onEdit(event)
{
var ss = event.source.getActiveSheet();
//узнаем редактируемую ячейку
var r = event.source.getActiveRange();
//узнаем номер колонки
var cols = r.getColumn();
var rows = r.getRow();
//если колонка №3 то записываем коммент
if(cols==3){
//№
var pole1 = ss.getRange(rows,3).getValue();
var pole2 = ss.getRange(rows,5).getValue();
var subject = "MESGS: Начало работ";
var message = "№" + pole1 + ", Место:" + pole2 +".";
r.setComment("Послед. изменение: " + (new Date()) + " - " + pole1 + ", " + pole2);
}
//если надо удалить комменты то пишем
//r.clearComment();
}
Теги: Google script
комментариев 6 для записи Google Apps script (скрипты в google docs)
Можно ли сделать такое же уведомление только через смс сервис? Что бы приходило сообщение об изменении данных в определенной ячейке?
Можно ли сделать так, что бы вновь добавленная в одну таблицу информация, обновляла информацию в другой таблице. То есть, допустим есть у меня таблица и на листе «1» в столбце «А» 2437 заполненных ячеек, а на листе «2» в ячейке «А1» я вижу информацию из ячейки «А2437» листа «2», и тут, в лист «1» добавляется новая ячейка — «А2438» с новой информацией, а ячейка «А1» на листе «2» автоматически обновляется и теперь показывает информацию из ячейки «А2438» листа «1»
Уважаемый автор скрипта. Если Вы найдете время помогите пожалуйста его усовершенствовать для своих целей. Мне необходимо чтобы в отслеживаемой колонке значение менялось формулой. Дело простое, но скрипт на изменения внесенный формулой не реагирует, требует ручной редакции данной колонки.
Поясните пожалуйста в тексте первый вариант скрипта, что он конкретно делает (почему именно 4 поля).Не могу понять как сделать чтобыскрипт мониторил нужное количество столбцов (несколько десятков) и присылал отчет по всем ним.