Мне нужен сценарий, который будет отправлять электронное письмо из электронной таблицы при вводе новой строки данных. Я хотел бы, чтобы некоторые из этих данных были включены в тему, а также некоторые другие данные и ссылку на электронную таблицу в основном теле.Персональные уведомления электронной почты для Google Apps
В настоящее время я использую скрипт, который отправляет электронное письмо, когда обновляется определенный столбец в электронной таблице, но теперь я хотел бы его персонализировать еще немного и сделать его более быстрым, чтобы получатель просмотрел его без необходимости всегда откройте таблицу.
This моя таблица:
И это мой текущий сценарий:
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Requests");
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
if (cell.indexOf('F')!=-1)
{
MailApp.sendEmail({
to: "[email protected]",
subject: "Request",
htmlBody: "There has been a new request. <br \> <br \> To review it, use the link below. <br \> <br \> " +
"<a href=\"https://docs.google.com/spreadsheets/d/1Eq8Kpn0oOBItaGaKaOOLa1qLZZ2_l2gg6wOkLa6GMWo/edit#gid=872382993\">Requests</a>"
});
}
}
Я хотел бы количества (колонка F) и дата (колонка E) быть включена в электронной почте, и количество (F), дата (E) и депо (D) входит в основной корпус, wi й ссылке на электронную таблицу.
EDIT: Столбцы G, H & Я буду заполнен позднее, получателем письма.
Заранее спасибо
EDIT:
Мой сценарий сейчас выглядит так:
function getActiveRowValues(sheet){
var cellRow = sheet.getActiveRange().getRow();
// get depot value
var depotCell = sheet.getRange("D" + cellRow);
var depot = depotCell.getDisplayValue();
// get date value
var dateCell = sheet.getRange("E" + cellRow);
var date = dateCell.getDisplayValue();
// get quantity value
var quantCell = sheet.getRange("F" + cellRow);
var quant = quantCell.getDisplayValue();
// return an object with your values
return {
depot: depot,
date: date,
quantity: quant
}
if (cell.indexOf('F')!=-1)
{
var rowVals = getActiveRowValues(sheet);
MailApp.sendEmail({
to: "[email protected]",
subject: "Request" + " date " + rowVals.date + " quant " + rowVals.quant,
htmlBody: "There has been a new request. <br \> <br \> To review it, use the link below. <br \> <br \> " + "<table border = \"1\" cellpadding=\"10\" cellspacing=\"0\"><tr><th>Depot</th><th>Date</th><th>Quantity</th></tr><tr><td>"+rowVals.depot+"</td><td>"+rowVals.date+"</td><td>"+rowVals.quant+"</td></tr></table>" +
"<a href=\"https://docs.google.com/spreadsheets/d/1Eq8Kpn0oOBItaGaKaOOLa1qLZZ2_l2gg6wOkLa6GMWo/edit#gid=872382993\">Requests</a>"
});
}}
Но получаю ошибку:
TypeError: Cannot call method "getActiveRange" of undefined. (line 2, file "Code")
Прошу прощения, в чем вопрос? –
Я хотел бы указать дату и количество, которое будет включено в тему электронной почты, а в теле письма - дату, количество и депо, а также ссылку на электронную таблицу. –