我找到了一些脚本并尝试对其进行修改,以便它适用于我的用例,但一直遇到错误。基本上我有一个谷歌表格,当用户提交时,我希望他们刚刚输入的行发送到我的电子邮件。我一直收到一个错误:“无法从undefined中读取属性”namedValues“。(第14行,文件”代码“)”
感谢任何帮助,谢谢!!
function sendFormByEmail(e)
{
var email = "dummyemail@dummy.com";
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
var subject = "New Hire: ";
// The variable e holds all the form values in an array.
// Loop through the array and append values to the body.
for(var i in headers)
message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "\n\n";
// Insert variables from the spreadsheet into the subject.
subject += e.namedValues[headers[2]].toString() + " - starts " + e.namedValues[headers[15]].toString();
// Send the email
MailApp.sendEmail(email, subject, message);
}
答案 0 :(得分:0)
您可以检查标题[i]是否为空,替换:
message += "" + headers[i] + " : " + datarow[i] + "\n\n";
使用:
if (datarow[i] != "") {
message += "" + headers[i] + " : " + datarow[i] + "\n\n";
}
此外,如果您允许用户编辑他们的回复,那么您的数据行将不正确。您可以使用:
var datarow = sheet.getRange(e.range.getRow(),1,1,sheet.getLastColumn()).getValues()[0];