2013-02-07 59 views
0

我想要一封电子邮件来提醒我,如果在Google表格中的某一列= X。谷歌应用程序脚本触发电子邮件

我试过使用通知系统使用EQ操作符来打开单元格等于X时,这会更改单元格,并且通知系统应该马上发送电子邮件。这不是那种方式,电子邮件永远不会触发。

我想我需要一个脚本,如果一个单元格= X会触发一封电子邮件,这样会很好,因为我可以自定义电子邮件,所以它更有意义。 (即“您的活动举行的会议室已达到容量,您应该将其从预订表中删除”)

我是Google脚本新手,如果cell = X脚本可以使用一些帮助创建电子邮件触发器。

感谢,

戴夫

回答

0

您将需要添加一个脚本来运行onEdit。

function onEdit() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NameOfYourSheet"); 
    var currentValue = sheet.getRange("A5").getValue(); 
    if (currentValue == (whateverValueYoureLookingFor)) { 
    MailApp.sendEmail("[email protected]", "ALERT: The cell in the sheet is equal to X!", "The message body that you want to send."); 
    } 
} 
+0

菲尔我似乎无法得到它用这个脚本触发,它可能是我做错了什么? 这是表格。我已经尝试了各种方法,例如使用另一个工作表来测量第一个使用EQ操作符的值,然后测试TRUE。 [链接] https://docs.google.com/spreadsheet/ccc?key=0Ai_2YLvaQba0dGtCbFdmeDF6bHNaY0p5NnNOemZtcXc&usp=sharing [/链接]我有 但有一个问题是,当我导入数据从一个片到另一个式变化在表单输入发生时在第二张表上? –

+1

您正在寻找的触发器是onFormSubmit()。 –

+0

我把代码应该看起来像[这里](http://pastebin.com/Bm8qX2af)。当您提交表单时,它将添加到最后一行,因此检索单元格(最后一行,B列)。如果它等于6,则发送电子邮件。 –

0
function testSchemas() { 
    var htmlout = HtmlService.createTemplateFromFile('data').evaluate().getContent(); 

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('All Exams Tracker'); 
var range = sheet.getDataRange(); 
    var values = range.getValues(); 
    var last_row = sheet.getLastRow(); 
    var today = new Date() 


    for (var i =3 ;i < last_row;i++) { 
    var temp = values[i][4]; 
    var e_date = new Date(temp); 
    if (((e_date - today)/(1000*60*60*24)) < 10 && e_date > today){ 
     var cond = "done" } 
    break; } 
Logger.log(cond); 

    if (cond == "done"){ 


MailAppv.sendEmail({ 
    to: '*************************************************************', 
    subject: 'Exam Coming Next Week', 
    htmlBody: htmlout, 
    }); 

    }} 

触发时,这将HTML文件数据(如下)。

<html> 
<head> 
<style> 
table, th, td { 
    border: 1px solid black; 
    border-collapse: collapse; 
} 
th, td { 
    padding: 5px; 

} 
</style> 
</head> 
<table style = "border: 1px solid black; border-style: collapse;"> 
<? var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('All Exams Tracker'); 
var range = sheet.getDataRange(); 
    var values = range.getValues(); 
    var last_row = sheet.getLastRow(); 

    var today = new Date();?> 

    <tr style="border: 1px solid black; padding: 10px;"> 

    <th style="border: 1px solid black; padding: 10px;">Exam Name</th> 
    <th style="border: 1px solid black; padding: 10px;">Exam Date</th> 
    <th style="border: 1px solid black; padding: 10px;">Priority</th> 
    <th style="border: 1px solid black; padding: 10px;">College Predictor Status</th> 
    <th style="border: 1px solid black; padding: 10px;">Rank Predictor Status</th> 

</tr> 

    <? for (var i =3 ;i < last_row;i++) { 
    var temp = values[i][4]; 
    var e_date = new Date(temp); 
    if (((e_date - today)/(1000*60*60*24)) < 10 && e_date > today) { 


    if (values[i][12] != ""){ 
    var col_status = "Live"} 
    else 
    if (values[i][11] != ""){ 
    col_status = "Uploaded and Tested"} 
    else 
    if (values[i][10] != ""){ 
    col_status = "Data Processed"} 
    else 
    if (values[i][9] != ""){ 
    col_status = "Template Ready"} 

    else 
    col_status = "Not initiated yet" 

    if (values[i][19] != ""){ 
    var rank_status = "Live"} 
    else 
    if (values[i][18] != ""){ 
    rank_status = "Uploaded and Tested"} 
    else 
    if (values[i][17] != ""){ 
    rank_status = "Data Processed"} 
    else 
    rank_status = "Not Initiated yet" 


    ?> 
<tr> 

    <td style="border: 1px solid black; padding: 10px;"><?= values[i][2]?></td> 
    <td style="border: 1px solid black; padding: 10px;"><?= values[i][4]?></td> 
    <td style="border: 1px solid black; padding: 10px;"><?= values[i][8]?></td> 
    <td style="border: 1px solid black; padding: 10px;"><?= col_status?></td> 
    <td style="border: 1px solid black; padding: 10px;"><?= rank_status?></td> 

</tr> 
<? } }?> 
</table> 
<br><br> 
<p><a href="https://docs.google.com/spreadsheets/d/1fzbRCvnNfuVTCEuRnncJxb1VW7f-tkSEywntzaTugZQ/edit#gid=0">Click Here For More Details</a></p> 
</html> 
相关问题