【发布时间】:2021-08-25 14:57:35
【问题描述】:
我对 Google 脚本完全陌生。我尝试了找到 here 的脚本(由 Snipe 编写并由 Govoni 在第一条评论中编辑)。
我想做的是结合这两个脚本,以获取关于表单提交的电子邮件:
- 仅显示已回答的问题(有效)
- 以粗体显示问题(有效)
- 填充主题行(我无法让它工作)
下面的代码有效。
function newResponse()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formName = ss.getSheetByName('Form Responses 1');
var lastRow = formName.getLastRow();
var lastColumn = formName.getLastColumn();
var email = "sample@myemail.com";
var name = "My Email";
var subject = 'New form response: ';
var body = '';
var cell = '';
for (var i = 1; i <= lastColumn ; i++)
{
var title = formName.getRange(1,i).getDisplayValue();
var cell = formName.getRange(lastRow, i).getDisplayValue();
if (cell != '' && cell != 0)
{
body = body + '<b>'+ title + '</b>: ' + cell + '<br>';
};
};
MailApp.sendEmail({
to: email,
name: name,
subject: subject,
htmlBody: body
});
}
因此,为了尝试将变量条目添加到主题行,我将“function newResponse()”更改为“function newResponse(e)”并在 MailApp:sendEmail 之前添加了这一行:
// The email subject line should look like this: "New form response: Item (Company, Country)"
// Item, Company and Country are the 2nd, 3rd and 4th columns from my form
subject += e.namedValues[title[1]].toString() + " (" + e.namedValues[title[2]].toString()+ ", "
+ e.namedValues[title[3]].toString()+ ")";
但是当我这样做时,它根本不会发送电子邮件。如果我更改 e.namedValues 并改为输入 [title[0]] 之类的内容,则它会返回最后回答的问题的第一个字母。
我不太确定下一步该尝试什么?
【问题讨论】:
标签: javascript google-apps-script google-sheets google-forms