Google Apps Script: TypeError: Cannot read property 'values' of undefined (line 3, file "Code")
Google Apps Script: TypeError: Cannot read property 'values' of undefined (line 3, file "Code")
首先,感谢 NEWAZA 编写了这么棒的代码!
其次,请参考Whosebuglink/question。
function onSubmit(e) {
Logger.log(JSON.stringify(e.values))
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(`onSubmit`)
const [timestamp,emailAddress,companyName,_,phoneNumber,firstName,lastName,locations,city,state,zipCode,dateRequested,...rest] = e.values;
locations.split(`,`).forEach(i => sheet.appendRow([firstName, lastName, i.trim(), city, state, zipCode, dateRequested]))
}
最后,我在代码中遇到错误。另外,如果我想向 Google 表单添加新的列或问题,是否会像在脚本中添加 header 的文本和其他常量一样简单?
通常,您收到的错误表明没有 e
或 event object
传递给函数。我的猜测是您试图 运行 在表单响应之外使用此功能,这是设计所要求的。 (该函数利用来自表单响应的值,没有表单响应 - 没有值)。
关于 adding/deleting 问题的此代码的最佳维护是确保每个 constant/variable 对应于表单响应中的正确值。
查看表单响应中的每个索引、问题和答案的一个便捷技巧是将以下代码段添加到 onSubmit()
函数的顶部:
function onSubmit(e) {
Object.entries(e.namedValues).forEach(([key, value], index) => {
Logger.log(`[${index}] "${key}" : "${value}"`)
})
// Rest of code goes here.
}
提交回复后,您可以检查Execution Logs
并查看您的constants/variables应该如何对齐。
基本上,您的 constants/variables 必须 等于响应答案。
希望对您有所帮助!如果我遗漏了什么,或者您需要进一步的解释,请告诉我。
首先,感谢 NEWAZA 编写了这么棒的代码!
其次,请参考Whosebuglink/question。
function onSubmit(e) {
Logger.log(JSON.stringify(e.values))
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(`onSubmit`)
const [timestamp,emailAddress,companyName,_,phoneNumber,firstName,lastName,locations,city,state,zipCode,dateRequested,...rest] = e.values;
locations.split(`,`).forEach(i => sheet.appendRow([firstName, lastName, i.trim(), city, state, zipCode, dateRequested]))
}
最后,我在代码中遇到错误。另外,如果我想向 Google 表单添加新的列或问题,是否会像在脚本中添加 header 的文本和其他常量一样简单?
通常,您收到的错误表明没有 e
或 event object
传递给函数。我的猜测是您试图 运行 在表单响应之外使用此功能,这是设计所要求的。 (该函数利用来自表单响应的值,没有表单响应 - 没有值)。
关于 adding/deleting 问题的此代码的最佳维护是确保每个 constant/variable 对应于表单响应中的正确值。
查看表单响应中的每个索引、问题和答案的一个便捷技巧是将以下代码段添加到 onSubmit()
函数的顶部:
function onSubmit(e) {
Object.entries(e.namedValues).forEach(([key, value], index) => {
Logger.log(`[${index}] "${key}" : "${value}"`)
})
// Rest of code goes here.
}
提交回复后,您可以检查Execution Logs
并查看您的constants/variables应该如何对齐。
基本上,您的 constants/variables 必须 等于响应答案。
希望对您有所帮助!如果我遗漏了什么,或者您需要进一步的解释,请告诉我。