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

如何自定义Google表单提交邮件中响应字段的排序顺序?

解决Google表单提交邮件字段顺序问题

你当前代码用for-in循环遍历e.namedValues时,对象属性的遍历顺序是不确定的,所以邮件里的字段才会随机排序。要改成表单原有顺序或自定义排序很简单,直接用固定字段顺序数组来遍历即可:

方案1:按表单原有顺序输出

直接把你给出的表格字段顺序定义成数组,遍历这个数组来拼接邮件内容,就能完全匹配表单的原有顺序:

function sendFormByEmail (e)
{
  var email = "email@email.com, email2@email.com";
  var txt = "";
  // 严格按照表单/关联表格的字段顺序定义数组
  var fieldOrder = [
    "Timestamp",
    "Email Address",
    "Site Name",
    "Address",
    "ORD",
    "Approving Person (Drop Down)",
    "Serial Number",
    "Affect Item",
    "Packed (Drop Down)",
    "Special Instructions"
  ];
  
  // 按数组顺序遍历字段
  fieldOrder.forEach(function(field) {
    // 确保字段存在(避免表单修改后出现错误)
    if (e.namedValues[field]) {
      txt += field + ' :: ' + e.namedValues[field].toString() + "\n\n";
    }
  });

  MailApp.sendEmail(email, "Part Requested", txt);
}

方案2:自定义排序规则

如果想自己调整字段顺序,只需要修改fieldOrder数组里的元素位置就行。比如把高频查看的字段提前:

// 自定义顺序示例:把ORD、Serial Number放前面
var fieldOrder = [
  "ORD",
  "Serial Number",
  "Site Name",
  "Email Address",
  "Timestamp",
  "Address",
  "Approving Person (Drop Down)",
  "Affect Item",
  "Packed (Drop Down)",
  "Special Instructions"
];

注意事项

如果后续表单新增、删除或重命名字段,记得同步更新fieldOrder数组,避免邮件里遗漏字段或出现无效字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:01:03