我是 Google 表格和脚本的新手。我已经设置了一张表来使用 IMPORTHTML 函数获取实时数据。我正在尝试设置一个脚本并触发在 (**@gmail.com) 向我发送包含新行信息的电子邮件,只要将一个或多个新行添加到实时工作表的底部。那可能吗?我尝试使用基于时间的触发器编写代码,以检查是否添加了新行。
以下是我目前拥有的代码。两个问题: 1. 这是每分钟向我发送电子邮件,而不是仅添加新行 2. 这是向我发送总行数而不是添加的新行的信息(我需要它向我发送所有详细信息添加新行中的单元格)
提前非常感谢。
function sendemailupdates() {
//setup function
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Email send"));
var ActiveSheet = SpreadsheetApp.getActiveSheet();
var StartRow = 2;
var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,11);
var AllValues = WholeRange.getValues();
var lastRow = ActiveSheet.getLastRow();
var message = "";
//iterate loop
for (i in AllValues) {
//set current row
var CurrentRow = AllValues[i];
//define column to check if sent
var EmailSent = CurrentRow[11];
//if row has been sent, then continue to next iteration
if (EmailSent == "Sent")
continue;
//set HTML template for information
message +=
"<p><b>New Row: </b>" + lastRow + "</p>";
//set the row to look at
var setRow = parseInt(i) + StartRow;
//mark row as "sent"
ActiveSheet.getRange(setRow, 11).setValue("sent");
}
//define who to send grants to
var SendTo = "**@gmail.com";
//set subject line
var Subject = "New row added";
//send the actual email
MailApp.sendEmail({
to: SendTo,
cc: "",
subject: Subject,
htmlBody: message,
});
Logger.log(message);
}