表单的Google Apps脚本,生成唯一的ID号 [英] Google Apps Script for Form, Generate Unique ID Number

查看:127
本文介绍了表单的Google Apps脚本,生成唯一的ID号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个包含字段的简单Google表单:



姓名,电子邮件,薪资和请求。

当用户完成表单时,我想向他/她发送包含信息的电子邮件。但是,我想使用请求字段插入用户可以参考的唯一号码,以便他们需要进一步的通信。如果用户在'请求'字段中输入任何内容,我想丢弃它并使用我生成的数字(在响应和电子表格中)。



我已经能够使用我发现的其他信息拼凑脚本。它似乎适用于除电子邮件回复用户之外的所有内容.-它不包含我想在请求字段中使用的号码,而是将用户放入请求字段。电子表格看起来没问题(它在'Request'字段中有我的号码。)



以下是我的脚本:

 函数sendFormByEmail(e){
var capsht = SpreadsheetApp.getActiveSheet();
var caprow = SpreadsheetApp.getActiveSheet()。getLastRow();
capsht.getRange(caprow,5).setValue(Cap - + caprow);

var admin =admin@xxx.com;

尝试{

var recipient = e.namedValues [Email];
var subject =收到容量请求表单;

var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn())。getValues()[0];
var message =;

for(var i in headers)
message + = headers [i] +'='+ e.namedValues [headers [i]]。toString()+\\\
\\ \
;
MailApp.sendEmail(收件人,主题,信息);


$ b catch(error){
MailApp.sendEmail(admin,Error form with form submission response email,error.message);
}

}


解决方案

试试这样:

(在代码中添加注释并删除重复)

 函数sendFormByEmail(e)
{
var capsht = SpreadsheetApp.getActiveSheet();
var caprow = capsht.getLastRow();
var codenumber =Cap - + caprow
capsht.getRange(caprow,5).setValue(codenumber);

var admin =admin@xxx.com;

尝试{

var recipient = e.namedValues [Email];
var subject =收到容量请求表单;

var headers = capsht.getRange(1,1,1,capsht.getLastColumn())。getValues()[0];
var message =;

for(var i in headers)
if(i!= 4){
message + = headers [i] +'='+ e.namedValues [headers [i ]]。toString()+\\\
\\\
;
} else {// if i == 4(column nr5)then use your code number
message + = headers [i] +'='+ codenumber +\\\
\\\
;
}
MailApp.sendEmail(recipient,subject,message);


$ b catch(error)
{
MailApp.sendEmail(admin,Error form with form submission response email,error.message);
}

}


I created a simple Google form with the fields:

Name, E-mail, Salary and Request.

When the user completes the form, I want to send him/her an e-mail with the info. However, I want to use the "Request" field to plug in a unique number that the user can refer to if they need further correspondence. If the user enters anything in the 'Request' field, I want to discard it and use the number that I generate (both in the response and in the spreadsheet).

I've been able to piece together the script using other info I've found. It seems to work for everything except the e-mail response going back to the user.- It does not contain the number that I want to use in the 'Request' field, but instead sends back any input that the user puts in the 'Request' field. The spreadsheet looks ok (it has my number in the 'Request' field.)

Here's my script:

function sendFormByEmail(e) {      
  var capsht = SpreadsheetApp.getActiveSheet();  
  var caprow =  SpreadsheetApp.getActiveSheet().getLastRow();  
  capsht.getRange(caprow,5).setValue("Cap-"+caprow);  

  var admin = "admin@xxx.com";  

  try {  

    var recipient = e.namedValues["Email"];  
    var subject = "Capacity Request Form Received";    

    var s = SpreadsheetApp.getActiveSheet();  
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];      
    var message = "";      

    for (var i in headers)  
      message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n";   
      MailApp.sendEmail(recipient, subject, message);   

    }   

  catch (error) {  
    MailApp.sendEmail(admin, "Error with form submission response email", error.message);  
  }  

}

解决方案

try it like this :

(added comment in code and deleted repetitions)

function sendFormByEmail(e)   
{      
var capsht = SpreadsheetApp.getActiveSheet();  
var caprow = capsht.getLastRow();  
var codenumber = "Cap-"+caprow
capsht.getRange(caprow,5).setValue(codenumber);  

var admin = "admin@xxx.com";  

try {  

var recipient = e.namedValues["Email"];  
var subject = "Capacity Request Form Received";    

var headers = capsht.getRange(1,1,1,capsht.getLastColumn()).getValues()[0];      
var message = "";      

for(var i in headers)  
if(i!=4){ 
message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n";   
}else{  // if i==4 (column nr5)then use your code number
message += headers[i] + ' = '+ codenumber + "\n\n"; 
}
MailApp.sendEmail(recipient, subject, message);   

}   

catch (error)  
{  
MailApp.sendEmail(admin, "Error with form submission response email", error.message);  
}  

}

这篇关于表单的Google Apps脚本,生成唯一的ID号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆