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

如何用Google Apps Script检查Google表单复选框选项是否选中

解决Google表单提交后根据复选框选项发送对应文档邮件的问题

核心思路

不用硬编码所有选项组合,直接利用数组的includes()方法检查单个选项是否被选中,再通过选项-文档映射表关联每个选项对应的邮件模板文档,新增/修改选项时仅需更新映射表,无需改动逻辑代码。

修改后的完整代码

// 定义每个选项对应的邮件模板文档URL,键为复选框选项值,值为对应文档链接
var CLASS_DOC_MAP = {
  'a': '文档A的URL',
  'b': '文档B的URL',
  'c': '文档C的URL',
  'd': '文档D的URL'
};

function sendEmail(e) {
  var responses = e.namedValues;

  var recipient_name = responses['What is your full name?'][0].trim();
  var recipient_email = responses['Email address'][0].trim();
  var recipient_classes = responses['Which classes are you interested in attending?'];

  Logger.log(recipient_classes);

  // 拼接所有选中选项对应的邮件内容
  var emailBodyParts = [];
  for (var option in CLASS_DOC_MAP) {
    // 检查当前选项是否被用户选中
    if (recipient_classes.includes(option)) {
      var docUrl = CLASS_DOC_MAP[option];
      var docHtml = docToHtml(DocumentApp.openByUrl(docUrl).getId());
      emailBodyParts.push(docHtml);
    }
  }

  // 处理未选中任何选项的情况
  if (emailBodyParts.length === 0) {
    emailBodyParts.push('<p>您没有选择任何课程,如有疑问请联系管理员。</p>');
  }

  var email_subject = `${recipient_name} 这里是您的课程详情!`;
  
  MailApp.sendEmail({
    to: recipient_email,
    subject: email_subject,
    htmlBody: emailBodyParts.join('<hr>'), // 用水平线分隔不同课程内容
  });
}

function docToHtml(docId) {
  // 下载Google文档为HTML字符串
  var url = 'https://docs.google.com/feeds/download/documents/export/Export?id=' +
            docId + '&exportFormat=html';
  var param = {
    method: 'get',
    headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()},
    muteHttpExceptions: true,
  };
  return UrlFetchApp.fetch(url, param).getContentText();
}

关键说明

  • 选项-文档映射表:CLASS_DOC_MAP将复选框选项与对应文档URL绑定,后续新增选项只需添加键值对,无需修改发送逻辑。
  • 检查选中状态:通过recipient_classes.includes(option)直接判断选项是否在用户提交的数组中,简洁高效。
  • 邮件内容拼接:将选中选项对应的文档HTML内容拼接,用<hr>分隔保证结构清晰。
  • 修复原代码问题:原代码中recipient_name未取数组的[0],而e.namedValues返回的所有值均为数组类型,需用[0]获取实际值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:16:30