谷歌脚本,以便在他们的名字被插入单元格时给某人发送电子邮件

时间:2014-04-15 15:29:21

标签: excel scripting google-apps-script spreadsheet issue-tracking

我正在尝试使用谷歌电子表格制作票务系统,其中员工或客户可以在表单中输入他们的查询,并将其保存到我可以查看的电子表格中。我需要的一件事是能够使用员工姓名填写查询行中的单元格,这将为该问题分配该员工以尝试修复它。我需要知道是否有办法使用谷歌脚本来做到这一点。如果你正在检查整个专栏我知道怎么做,但我不想每次向一个单元格添加一个名称时给所有人发送电子邮件,只有那个人。

例如,客户填写表单说他们有问题A,一旦我进入电子表格,我看到它已经更新,并希望将问题分配给特定的人,所以我填写了一个单元格专栏我已指定我可以填写其分配给谁。一旦我将其分配给某个人,他们就会收到一封包含该行数据的电子邮件,以便他们知道问题。

希望我解释得足够多。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:0)

我做了一个简单的例子:

您必须检查代码并使其适应您的特定设置(即:工作表名称,数据位置等)。

希望得到这个帮助。

function onEdit(e) {
  doEvent(e);
}

function doEvent(e) {

  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var sheet     = e.source.getActiveSheet();
  var sheetName = sheet.getName();
  var r         = e.source.getActiveRange();
  var col       = r.getColumn() ;
  var row       = r.getRow();

  var i = 0 ;

  switch ( sheetName ) {
    case 'MySheet' : // just to make sure you are on the right sheet
      if ( row > 1 ) { // skip headers row if you have
        var ticketDataRange = sheet.getRange(row, 1, 1, numberOfColumnsToGrab);
        var ticketData = ticketDataRange.getValues();
        if ( col == columnEmailOfOwnerOfTicket ) {
          var emailOwnerOfTicket = ticketData[columnEmailOfOwnerOfTicker-1];
          GmailApp.sendEmail( emailOwnerOfTicket, "New Task Assigned", '', {htmlBody: 'A new task has been assigned to you by: <strong>Me!</strong><br>Task Linked to Contact: <strong>BlahBlah</strong><br><br>Here can be description' + ticketData[positionOfDescription].replace(/\n/g, '<br>') + '<br><br><p>Due Date: <strong>' + Utilities.formatDate(ticketData[positionOfDueDate],SpreadsheetApp.getActive().getSpreadsheetTimeZone(),"EEE, MMM d, yyyy") + '</strong></p><br>' } );
        }
      }
      break;
  }

}