Google Sheet 脚本未按表单顺序和粗体文本发送电子邮件

问题描述 投票:0回答:1

我有一个链接到工作表的 Google 表单。我需要在提交表格后立即发送一封包含表格答案的电子邮件。我有一个脚本可以做到这一点,但它不会按照表单中的顺序发送问题/答复。另外,我希望问题加粗,而答案不加粗。

这是我正在使用的脚本:

function onFormSubmit(e) {
  var message = 'New Work Order Request: \n\n';
  for (var question in e.namedValues) {
    if (question !== '') message += `${question}: ${e.namedValues[question]}\n`;
  }
  MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'New Work Order Request',     message);
}

我希望发送的电子邮件内容包含问题,以便它们出现在表格中,并且表格中的问题在该电子邮件中以粗体显示。

我对编码不太了解,所以我在这方面遇到了困难。

forms google-sheets google-apps-script
1个回答
0
投票

使用 HTML 标签

您可以使用脚本的修改版本,它应该符合您想要的结果。脚本将按照问题和答案在表单中出现的顺序传输问题和答案,并且问题将以粗体显示。

代码:

 function onFormSubmit(e) {
  var message = "<p><b>New Work Order Request:</b></p>";
  var form = FormApp.openById('YOUR_FORM_ID'); //replace with your Form ID
  var items = form.getItems();
  
  items.forEach(function(item) {
    var question = item.getTitle(); 
    var response = e.namedValues[question] ? e.namedValues[question].join(', ') : "No response"; 
    message += `<b> ${question}: </b> ${e.namedValues[question]}<br>`;
  });

  MailApp.sendEmail({
    to:Session.getEffectiveUser().getEmail(),
    subject: 'New Work Order Request',
    htmlBody: message,
  });
}

注意: 确保您的脚本包含可安装的触发器,如下所示:

  • 选择要运行的函数:onFormSubmit
  • 在部署时运行:Head
  • 选择事件源:来自电子表格
  • 选择事件类型:在表单提交时

参考: HTML 标签

© www.soinside.com 2019 - 2024. All rights reserved.