为什么Google Apps脚本中的formSubmitReply上的e.values []有Na​​N?

时间:2014-12-04 13:30:00

标签: google-apps-script nan google-spreadsheet-api google-form google-apps-for-education

我正在尝试制作一个简单的工具,用于存储票号以及一些移交给其他团队成员的详细信息。在此过程中,我使用表单在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..etc。一切都工作正常但突然有一天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");似乎无法引发一些引用错误。

1 个答案:

答案 0 :(得分: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()方法,所以你需要复制你引用的教程中的函数,或者像这样手动设置它: / p>

var statusCol = 1;
sheet.getRange(sheet.getLastRow() + 1, statusCol).setValue("New");