GAS FormApp добавить данные в форму ответа - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить название формы 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()); 
}

Как я могу сделать эту работу?

1 Ответ

0 голосов
/ 08 ноября 2019

Вы не можете программно отправить ответ пользователя (исключение «Извините, этот ответ уже был отправлен.»). Функция submit () [1] предназначена для ответов, которые еще не отправлены (программно сделаны).

Однако вы можете создать триггер отправки формы для целевой электронной таблицы [2] [3] (тот, который связан с формой) и получить заголовок из формы, чтобы вставить его в желаемый столбец (Я использовал 7-ю колонку):

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...