【问题标题】:Using GAS, being able to update responses to a form?使用 GAS,能够更新对表单的响应?
【发布时间】:2020-05-24 07:25:11
【问题描述】:

我想使用 Google Apps 脚本 来编辑对已提交表单的回复。我有答案的 ID,我可以检索它,但我无法再次发送它以更改任何项目:

  var libro = SpreadsheetApp.getActiveSpreadsheet()
  var hoja = libro.getSheetByName('Respuestas de formulario 1')
  const answers = hoja.getRange(1,1,hoja.getLastRow(), hoja.getLastColumn()).getValues().slice(2)

  const form = FormApp.openById(FORM_ID);


var cuestionario = form.getResponse(RESPONSE_ID)
const items = form.getItems();
    cuestionario.withItemResponse(items[0].asListItem().createResponse(answers[1][1])) //competición
                .withItemResponse(items[1].asListItem().createResponse(answers[1][2])) //sección
                .withItemResponse(items[2].asTextItem().createResponse(answers[1][3])) //Equipo Sección
                .withItemResponse(items[3].asTextItem().createResponse(answers[1][4])) //Equipo A
                 .withItemResponse(items[4].asTextItem().createResponse(answers[1][5])) //Equipo B
                 .withItemResponse(items[5].asDateItem().createResponse(answers[1][6])) //Fecha Inicial
                 .withItemResponse(items[6].asDateItem().createResponse(answers[1][7])) //Fecha Juego
                 .withItemResponse(items[7].asDateItem().createResponse(answers[1][8])) //Hora
                 .withItemResponse(items[8].asTextItem().createResponse(answers[1][9])) //Campo
                 .withItemResponse(items[9].asTextItem().createResponse(answers[1][10])) //Entrenador
                 .withItemResponse(items[10].asTextItem().createResponse(answers[1][11])) //Categoría Fab
                 .withItemResponse(items[11].asListItem().createResponse(answers[1][12])) //Pista Colegio
                  cuestionario.submit()

例外:Lo sentimos。 Esta respuesta ya se ha enviado

例外:对不起。此回复已发送

【问题讨论】:

  • 我看到您正在访问表单以及存储响应的工作表。你想改哪一个?

标签: google-apps-script google-forms


【解决方案1】:

无法使用FormResponse.submit()withItemResponse(response) 更改现有的表单响应。

withItemResponse(response) 的文档指出:

此方法仅适用于脚本创建的表单响应 但尚未提交;它不会影响存储的响应。

FormResponse.submit() 的文档指出:

如果响应已经被抛出,则抛出脚本异常 已提交。

没有官方的“内置”方式来编辑现有的 Google 表单回复。只有最初提交表单的人才能编辑表单中的回复。表单的所有者也无法手动编辑表单响应。表单的所有者可以删除响应,但所有者不能编辑响应。

表单的用户至少应该有一定的信心,相信他们的答案不会被改变,除非他们自己改变。

可以使用 Apps 脚本代码获取“编辑 URL”,但无法以编程方式使用编辑 URL 来编辑现有答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多