如果谷歌工作表上的指定列发生更改,则发送电子邮件通知

Sent email notification if a change happens on specified columns on a google sheet

本文关键字:通知 电子邮件 工作 谷歌 如果      更新时间:2023-09-26

我在Google Drive中有一个电子表格,里面有两张表"生产"answers"发芽"

对于生产工作表,如果对a-F中的列进行了更改,我会收到电子邮件通知。此外,如果工作表中添加或删除了一行。

以下代码在某种程度上起到了作用:

    function onEdit( e ){
    //To get email notification if any changes to the perticular cells
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("production");
    var cell = ss.getActiveCell().getA1Notation();
    var row = sheet.getActiveRange().getRow();
    var cellvalue = ss.getActiveCell().getValue().toString();
    var recipients = "zeeshanrang@gmail.com";
    var message = '';
    if(cell.indexOf('C')!=-1){ 
      message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
    }
    var subject = 'Update to '+sheet.getName();
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»';
    Logger.log(body);
   //MailApp.sendEmail(recipients, subject, body);
 };

但它每次编辑都会给我发一封邮件,这不是必须的。要求每小时发送一次邮件(如果有更改)。同样,现在它只检查C列的更改,而不是其他列的更改。

此外,我无法理解if(cell.indexOf('C')!=-1)。有人能解释一下这句话的意思吗。

TIA

它的意思如下:

if(cell.indexOf('C')!=-1) // means that if you edit column C
       .......  //the following will happen
    }

所以要更详细地解释:

cell.indexOf('C')->搜索'C'

!=->不等于

-1->不存在/未找到

if(cell.indexOf('C')!=-1)->如果indexOf('C')不等于'-1'(即如果存在'C',则执行'if'语句