Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
Almacenamiento de todas las respuestas de los formularios en un solo archivo

Estoy tratando de almacenar todas las respuestas de los formularios enviados por los usuarios en AppScript. Estoy usando este código, pero me sale el error:

 'TypeError: id_form.getResponses is not a function'

Mi código:

 //store answers in one file

EDITAR:

 function setDestination_responses(form) { var id_form = FormApp.openById(form.getId()); var spreadsheet_responses = SpreadsheetApp.openById('1TX4GOsihKuXFhbZMhtFWPYmGwrxii0XhyGhyTKzPKhc'); var sheet_spreadsheet_responses = spreadsheet_responses.getSheets()[0]; var titles = id_form.getItems().map(e => e.getTitle()); var formResponses = id_form.getResponses(); var values = formResponses.map(f => f.getItemResponses().reduce((o, i) => { var r = i.getResponse(); return Object.assign(o, {[i.getItem().getTitle()]: Array.isArray(r) ? r.join(",") : r}); }, {})).map(o => titles.map(t => o[t] || "")); if (values.length==0) {console.log(`VALUES EQUAL TO 0 ${values}`)} else{sheet_spreadsheet_responses.getRange(sheet_spreadsheet_responses.getLastRow() + 1, 1, values.length, values[0].length).setValues(values)}; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puntos de modificación:

  • getResponses() devuelve el objeto FormResponse. En su situación, creo que es necesario recuperar los valores de respuesta usando getItemResponses() .
  • Cuando appendRow se usa en un ciclo, el costo del proceso será alto. Árbitro

Cuando estos puntos se reflejan en su guión, se convierte en lo siguiente.

Guión modificado:

 function myFunction() { var id_form = FormApp.openById(form.getId()); var spreadsheet_responses = SpreadsheetApp.openById('1X1rhvgTfFq0-SoecLcgDP1Zu8x93Vba0EKMTBkRFJcw'); var sheet_spreadsheet_responses = spreadsheet_responses.getSheets()[0]; var titles = id_form.getItems().map(e => e.getTitle()); var formResponses = id_form.getResponses(); var values = formResponses.map(f => f.getItemResponses().reduce((o, i) => { var r = i.getResponse(); return Object.assign(o, {[i.getItem().getTitle()]: Array.isArray(r) ? r.join(",") : r}); }, {})).map(o => titles.map(t => o[t] || "")); sheet_spreadsheet_responses.getRange(sheet_spreadsheet_responses.getLastRow() + 1, 1, values.length, values[0].length).setValues(values); }
  • Cuando ejecuta este script, todas las respuestas se recuperan del formulario de Google y se agregan a la primera hoja de la hoja de cálculo.
  • Acerca var id_form = FormApp.openById(form.getId()); , en su secuencia de comandos, el form podría ser el mismo FormApp.openById(form.getId()) .
  • En Google Form, cuando se envía la respuesta vacía, la pregunta no tiene valor. Por esto, se requiere considerar esto. Entonces, al principio, los títulos se recuperan de los elementos y los valores se crean usando los títulos de los elementos. Pensé que este podría ser un punto importante.

Referencias:

  • obtenerRespuestas()
  • getItemResponses()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda