Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda