У меня есть рабочий сценарий, который отправляет электронное письмо, когда обновляется определенный столбец, но в рабочей книге, где я нахожусь, есть множество листов, поэтому я ищу способ отправки изменений по электронной почте только на определенные именованные листы - например, «Система 1», «База данных 2», «База данных 2».
Спасибо
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var column = sheet.getActiveRange().getColumn();
var colLetter = columnToLetter(column);
var cellvalue = ss.getActiveCell().getValue().toString();
var range = sheet.getActiveCell();
var name = sheet.getRange(range.getRow(), 1).getValue();
var recipients = "email.com";
var message = '';
if(cell.indexOf('N')!=-1){
message = sheet.getRange('F'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to ' + sheet.getName() + '';
var body = ' Hello, An update has been made to the system for ' + sheet.getName() + ' now updated ' + cellvalue + ' ' + name + ' , Thanks' ;
MailApp.sendEmail(recipients, subject, body);
};
function columnToLetter(column) {
var temp, letter = '';
while (column > 0)
{
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
}
function letterToColumn(letter)
{
var column = 0, length = letter.length;
for (var i = 0; i < length; i++)
{
column += (letter.charCodeAt(i) - 64) * Math.pow(26, length - i - 1);
}
return column;
};
function onEdit(e)
{
var range = e.range;
var column = range.getColumn();
if(column == 14)
{
// call your send notification function
sendNotification();
}
}
function sendToSlack() {
var timestamp = new Date();
// custom slack webhook
// change the XXXXX's to your own slack webhook. Get it from:
// https://my.slack.com/services/new/incoming-webhook/
var url = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX";
var payload = {
"channel": "@testing",
"username": "System",
"text": "Hello, An update has been made to the system for " + sheet.getName() + " now updating " + cellvalue + " , Thanks ",
"icon_emoji": ":inbox_tray:"
};
var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};
return UrlFetchApp.fetch(url,options);
}