GAS FormApp添加数据以形成表单响应

我正在尝试在其响应中添加Google表单的标题,以便在用户提交表单时将所述数据写入电子表格。

我认为我需要使用withItemResponse(response)

到目前为止,这是我想到的。

function myFunction() {
  var form = FormApp.getactiveForm();
  var title = form.getTitle();
  var formResponse = form.getResponses();
  var items = form.getItems();
  formResponse.withItemResponse(items[5].asTextItem().createResponse(title).submit()); 
}

我该如何做?

yuanyuanlizhu 回答:GAS FormApp添加数据以形成表单响应

您不能以编程方式提交用户响应(引发“抱歉,此响应已提交。”异常)。 Submit()[1]函数用于尚未提交的响应(以编程方式进行)。

但是,您可以为目标Spreadsheet [2] [3](链接到表单的表单)创建一个on form提交触发器,并从表单中获取标题以将其插入所需的列中(我使用了第七栏):

function onUserFormSubmit(e) {
  //Get Form from formID and title
  var form = FormApp.openById("[FORM-ID]");
  var title = form.getTitle();
  //Row where user response is inserted
  var responseRow = e.range.getRow();
  //Column where you want the title to be
  var titleColumn = 7;

  //Get responses sheet and insert the title in the given cell
  var sheet = SpreadsheetApp.openById("[SPREADSHEET-ID]");
  sheet.getSheetByName("Form responses 1").getRange(responseRow,titleColumn).setValue(title);  
}

function createTrigger() {
  var sheet = SpreadsheetApp.openById("[SPREADSHEET-ID]");
  ScriptApp.newTrigger("onUserFormSubmit")
  .forSpreadsheet(sheet)
  .onFormSubmit()
  .create();
}

[1] https://developers.google.com/apps-script/reference/forms/form-response#submit()

[2] https://developers.google.com/apps-script/guides/triggers/installable

[3] https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events

本文链接:https://www.f2er.com/3143198.html

大家都在问