如何获取电子邮件表单提交脚本以从工作表中排除空白响应值



我正在编辑我的团队用于谷歌表单响应表的现有脚本。每次提交订单时,脚本都会使用订单的标题和响应单元格自动创建一个消息体,大致如下:

订单类型:实物国家:美国数字签名:最喜欢的颜色:最喜欢的食物:意大利面

我被要求做的是,让脚本通读一遍表格,不包括任何提交文件中没有回答的问题的标题或回答。就像这样,对于前面的例子:

订单类型:实物国家:美国最喜欢的食物:意大利面

首先,我应该说我在javascript或谷歌应用程序方面几乎没有经验。我试过同时使用len函数和被否定的isblank函数来处理if子句,但都无济于事。这些都会导致未定义的错误。

正如你所看到的,最初的剧本不是由我或过去几年一直在使用它的人创作的。

Original script
function sendFormByEmail(e) 
{ 
Logger.log('value of e is: ' + e);   
var email = "xxx@xxx.com"; 
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
var message = "";
var subject = "Type A Request: ";
// The variable e holds all the form values in an array.
// Loop through the array and append values to the body.   
// Insert variables from the spreadsheet into the subject.
// In this case, I wanted the new hire's name and start date in the
// email subject. These are the 3rd and 16th columns in my form.
for(var i in headers) 
message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "nn";     
subject += e.namedValues[headers[10]].toString() + " - " + 
e.namedValues[headers[12]].toString();

MailApp.sendEmail(email, subject, message, {noReply:true}); 
// Based off of a script originally posted by Amit Agarwal - www.labnol.org
}

您可以在for循环中包含空白值的检查。

if (e.namedValues[headers[i]].toString() === "") continue;

相关内容

  • 没有找到相关文章

最新更新