我正在编辑我的团队用于Google表单响应表的现有脚本。脚本每次提交时都会使用标题和响应单元自动为订单创建消息正文,大致如下:
订单类型:实物 国家:美国 电子签名: 最喜欢的颜色: 最喜欢的食物:面食
我被要求做的是让脚本通读工作表,并且不包含任何给定提交中未回答的问题的标题或答复。像这样,对于上一个示例:
订单类型:实物 国家:美国 最喜欢的食物:面食
我首先要说我在javascript或Google Apps方面拥有近0的经验。我尝试过同时使用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() + "\n\n";
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
}
答案 0 :(得分:0)
您可以在for循环中包含对空白值的检查。
if (e.namedValues[headers[i]].toString() === "") continue;