0

我正在尝试制作一个简单的工具,用于存储票号和一些移交给其他团队成员的详细信息。在那个过程中,我使用了一个表单来提交移交并存储在 Google Spreasheet 中。但我也想通知团队成员,所以我写了一个脚本如下。

function formSubmitReply(e) 
{

var timeStamp = e.values[0];
var sendTo = e.values[1];
var ticket = e.values[2];
var description = e.values[3];
MailApp.sendEmail(sendTo,
                  "New Handover",
                  + ticket +" handovered to you at "+ timeStamp +"\n\nDescription:"+ description +
                  "\n\nKindly check it using the below link\n\nhttp://goo.gl/p16qdN",
                   {name:"Handover Mail"});

}

在上面的代码中,e.values[2] 通过表单获得票号,在表单中我使用了一个带有正则表达式验证的文本框 [ci][r,n][q,c],这意味着前三个单词应该是 C /I,R/N/Q/C。例如 CRQ、IRC、INC..等。一切正常,但突然有一天 NaN 开始出现在通知邮件中(输出下方)。电子表格中的详细信息很好。

NaN handovered to you at 12/4/2014 12:48:23

Description:Device Check after 4 hours

Kindly check it using the below link

http://goo.gl/p16qdN

以上是我要解决的主要问题。但也作为补充,我需要一些建议或指导,了解如何在提交移交时在电子表格中具有固定列和可变行的单元格上设置一些值。我指的是http://goo.gl/wkD0Y7我的工作。但这sheet.getRange(lastRow, getColIndexByName("Status")).setValue("New");似乎不起作用,抛出一些参考错误。

4

1 回答 1

0

您的错误可能与电子邮件正文字符串中前面的“+”号以及将字符串解释为数字的 GAS 编译器有关。试试这个代码:

function formSubmitReply(e){
   var timeStamp = e.values[0];
   var sendTo = e.values[1];
   var ticket = e.values[2];
   var description = e.values[3];

   MailApp.sendEmail(
      sendTo,
      "New Handover",
         ticket + " handovered to you at " + 
         timeStamp + "\n\nDescription:" + 
         description + "\n\nKindly check it using the below link\n\nhttp://goo.gl/p16qdN",
       {name:"Handover Mail"}
   );
}

至于您的其他问题,没有内置的 getColIndexByName() 方法,因此您需要从您引用的教程中复制该函数,或者像这样手动设置它:

var statusCol = 1;
sheet.getRange(sheet.getLastRow() + 1, statusCol).setValue("New");
于 2014-12-04T13:51:27.040 回答