电子邮件通知包含包含单元格值的正文/主题

时间:2016-02-03 09:32:48

标签: email events google-apps-script google-sheets

我想创建一个包含事件触发器的Google表格。我正在使用Google Apps脚本。

当单元格的值为library(dplyr) df2 %>% rowwise() %>% do(data.frame(ID= .$ID, datelist = seq(.$StartDate, .$EndDate, by = '1 day'), NoDays= 1)) 时,会发送一封邮件来警告同事(验证)。

我找到了一个脚本并且有效。

现在我希望邮件正文和邮件主题包含触发器单元格值为Ok的行的单元格值。

以下是工作表的示例: Here is an example of the sheet

当我在K8中写下#34; Ok"时,会向同事发送邮件。我希望正文邮件包含F8,G8和J8中的信息。同样,如果我写'#34; Ok"在K7中,我希望发送的邮件包含来自F7,G7和J7的信息。 (例如:"您的请求已经过验证。必要性为5级。所需数量为1.价格为17,94€。")

我使用的脚本:

OK

如何让Var /** * add trigger for onedit - * see menu -> Resouces -> Current project's triggers */ function Initialize() { var triggers = ScriptApp.getProjectTriggers(); for(var i in triggers) { ScriptApp.deleteTrigger(triggers[i]); } ScriptApp.newTrigger("sendNotification") .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) .onEdit() .create(); }; /** * */ function sendNotification(e) { if("K" == e.range.getA1Notation().charAt(0)) { if(e.value == "ok") { //Define Notification Details var recipients = "user@example.com"; var subject = "Validation" ; var body = "Achat valider, à procéder"; //Send the Email MailApp.sendEmail(recipients, subject, body); } } } 和Var subject包含单元格值?

2 个答案:

答案 0 :(得分:1)

简短回答

使用其中一种Class Spreadsheet方法获取所需范围,然后使用getValue()的{​​{1}}方法。

简要示例

以下代码将显示“toast”(弹出窗口),显示F列中和所编辑单元格的同一行中的单元格值。

Class Range

参考

答案 1 :(得分:0)

问题解决了。

要进行汇总,当您需要更改单元格值时的电子邮件通知,并且您希望邮件包含来自您已编辑的同一行的单元格值:

/**
* add trigger for onedit - 
* see menu -> Resouces -> Current project's triggers
*/
function Initialize() {

var triggers = ScriptApp.getProjectTriggers();

for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}

ScriptApp.newTrigger("sendNotification")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onEdit()
.create();

};


/**
* 
*/



function sendNotification(e) {


if("L" == e.range.getA1Notation().charAt(0)) {

if(e.value == "oui") {



//Define Notification Details
var recipients = "XX@sCC.net";
var subject = "Request" + " - N° " + e.source.getRange('A'+ e.range.getRow()).getValue() ;
var body = "lolcat : " + e.source.getRange('B'+ e.range.getRow()).getValue()  ;

//Send the Email
MailApp.sendEmail(recipients, subject, body);
}
}
}

对我来说很好。谢谢你的帮助:)