如何根据特定工作表和列中的更改从Google电子表格发送电子邮件

时间:2016-03-09 12:50:32

标签: google-apps-script google-sheets

我正在尝试在提交用户表单时自动从电子表格发送电子邮件。该表格涵盖了许多流程(订购燃料,接收燃料等),我只希望通过燃料订单发送电子邮件 - 因此需要将警报限制在特定列。

我从其他例子中得到了以下内容,非常确定我已经接近了但可能会遗漏一些显而易见的事情......

function sendNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
    if(sheet.getName()=='Form Responses 1'){
  var cell = ss.getActiveCell().getA1Notation();
  var cellcol = cell.getColumn();
    if(cellcol == 4){
  var cellvalue = ss.getActiveCell().getValue().toString();
  var recipients = "email@email.com";
  var subject = 'New fuel order for '+cellvalue;
  var body = 'A new fuel order has been placed for ' + cellvalue + '. Please action asap: «' + ss.getUrl() + '»';
  MailApp.sendEmail(recipients, subject, body);}
    }
} 

我一直工作,直到我添加了行来查找单元格列,if函数只有在编辑位于D列时才继续 - 之前对表单响应表的任何编辑都触发了通知。

非常感谢

1 个答案:

答案 0 :(得分:0)

这一行(?<=[^\W\d_]),(?=[^\W\d_]|\s) 从google apps脚本角度看单元格为var cell = ss.getActiveCell().getA1Notation();,而不是单元格,因此String不执行任何操作。

相反,我建议简单地

.getColumn()