Google表单多选网格数据Apps Script读取显示undefined问题求助
问题排查与修正
直接语法错误(导致undefined的核心原因)
你代码里第一个if块里的payload[Status [Category1]]犯了语法错误:键名没有用引号包裹,应该写成payload["Status [Category1]"]。没有引号的话,JS会把Status和Category1当作未定义的变量调用,自然返回undefined。
多选网格的数据结构问题
Google表单的多选网格问题,提交后返回的是数组类型(哪怕只选了一个选项),直接拼接数组会得到类似Ok,Bad的字符串,要是需要更友好的展示,得把数组转成合适的格式。
修正后的代码
// 处理Category1的状态,兼容多选情况 let status_cat1 = ""; if (payload["Status [Category1]"]) { // 如果是数组就用逗号分隔,否则直接取值 const cat1Status = Array.isArray(payload["Status [Category1]"]) ? payload["Status [Category1]"].join(', ') : payload["Status [Category1]"]; status_cat1 = `Category1: ${cat1Status} `; } // 处理Category2的状态 let status_cat2 = ""; if (payload["Status [Category2]"]) { const cat2Status = Array.isArray(payload["Status [Category2]"]) ? payload["Status [Category2]"].join(', ') : payload["Status [Category2]"]; status_cat2 = `Category2: ${cat2Status} `; } const text = status_cat1 + status_cat2;
额外排查步骤
如果还是有问题,先打印整个payload确认实际的键名和值:
Logger.log(JSON.stringify(payload));
检查输出里的键是不是和你代码里写的"Status [Category1]"完全一致(比如空格、括号有没有差异),有时候表单里的问题名称可能和你预期的不一样。
内容的提问来源于stack exchange,提问作者matumba
相关产品推荐
相关产品推荐

