You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheet脚本问题:无法按表单顺序发邮件及实现问题加粗

解决Google表单提交邮件的顺序问题与格式需求

修改后的脚本

function onFormSubmit(e) {
  // 初始化纯文本和HTML格式的邮件内容
  let textMessage = 'New Work Order Request:\n\n';
  let htmlMessage = '<h3>New Work Order Request:</h3><ul>';

  // 获取按表单顺序排列的所有问题与回复
  const itemResponses = e.response.getItemResponses();
  
  for (const itemResponse of itemResponses) {
    // 获取问题标题
    const question = itemResponse.getItem().getTitle();
    // 获取回复内容,处理多选情况(数组转字符串)
    let response = itemResponse.getResponse();
    if (Array.isArray(response)) {
      response = response.join(', ');
    }

    // 构建纯文本内容(兼容不支持HTML的邮箱)
    textMessage += `${question}: ${response}\n`;
    // 构建HTML内容,问题加粗
    htmlMessage += `<li><strong>${question}:</strong> ${response}</li>`;
  }

  htmlMessage += '</ul>';

  // 发送邮件,同时支持纯文本和HTML格式
  MailApp.sendEmail({
    to: Session.getEffectiveUser().getEmail(),
    subject: 'New Work Order Request',
    body: textMessage,
    htmlBody: htmlMessage
  });
}

关键修改说明

  • 按表单顺序展示:不再遍历无序的e.namedValues,而是通过e.response.getItemResponses()获取表单定义顺序的问题与回复,确保和表单页面的问题顺序完全一致。
  • 问题加粗格式:使用HTML的<strong>标签包裹问题文本,通过htmlBody参数发送HTML格式邮件保证加粗效果;同时保留纯文本版本的body参数,兼容不支持HTML的邮箱客户端。
  • 处理多选回复:如果是多选类型问题,回复会返回数组,脚本自动将其转为逗号分隔的字符串,避免显示成[选项1,选项2]的格式。

替换脚本步骤

  1. 打开关联的Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps脚本」。
  2. 删除原有代码,粘贴上面的新脚本。
  3. 点击左上角保存按钮,给项目命名(比如「表单提交邮件通知」)。
  4. 第一次运行需授权:点击运行按钮,按提示完成授权(允许脚本访问表单和邮件)。
  5. 检查触发器:点击左侧「触发器」,确认存在onFormSubmit的表单提交触发器,没有则点击「添加触发器」,选择事件类型为「表单提交」后保存。

内容的提问来源于stack exchange,提问作者Heidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:39:58