我是谷歌表格和脚本的新手。我已经设置了一个工作表来使用 IMPORTHTML 函数获取实时数据。我正在尝试设置一个脚本并触发,以便在实时工作表的底部添加一个或多个新行后立即向我发送包含新行(S(信息的电子邮件(**@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);
}
1.这是每分钟向我发送电子邮件,而不是在仅添加新行时
您可以熟练地将扳机设置为每分钟响一次。该程序只执行您任务中的任务。 请查看云端硬盘 API 推送通知教程,了解如何在资源发生更改时实现通知。
2.这是向我发送的总行数,而不是添加的新行的信息(我需要它向我发送添加的新行中所有单元格的详细信息(
你可以在这里查看我的代码。希望它能为您提供洞察力,让您开始工作。