Primero, ¡gracias a NEWAZA por escribir este increíble código!
En segundo lugar, consulte el enlace/pregunta de StackOverflow.
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])) }Finalmente, estoy recibiendo un error en el código. Además, si quisiera agregar nuevas columnas o preguntas al formulario de Google, ¿sería tan simple como agregar el texto del encabezado con las otras constantes en el script?
Por lo general, el error que recibe indica que no se pasó ningún event object o e a la función. Supongo que intentó ejecutar esta función fuera de una respuesta de formulario, lo cual es requerido por diseño. (La función utiliza valores de una respuesta de formulario, sin respuesta de formulario, sin valores).
El mejor mantenimiento para este código con respecto a agregar/eliminar preguntas será asegurarse de que cada constante/variable corresponda al valor correcto en la respuesta del formulario.
Un truco útil para ver cada índice, pregunta y respuesta en una respuesta de formulario es agregar el siguiente fragmento en la parte superior de la función onSubmit() :
function onSubmit(e) { Object.entries(e.namedValues).forEach(([key, value], index) => { Logger.log(`[${index}] "${key}" : "${value}"`) }) // Rest of code goes here. } Después de enviar una respuesta , puede consultar los Execution Logs y ver cómo deben alinearse sus constantes/variables.
Esencialmente, sus constantes/variables deben ser iguales a las respuestas de respuesta.
¡Espero que esto ayude! Si me olvidé algo o necesitas más explicaciones, házmelo saber.