перетащить URL-адрес формы в столбец A - PullRequest
0 голосов
/ 24 октября 2019

Я хочу добавить URL-адрес ответа формы в столбец А листа ответов формы, желательно в более чистом формате, чем полный URL-адрес.

Я попробовал оба приведенных ниже кода. Первый работает, но помещает URL в последний столбец. Второй работает только один раз, тогда я не могу заставить его повторить. с на форме отправки триггеров установлен.

Я включил ссылку на контрольный лист и форму, которую я использовал.

// first attempt 
function getEditResponseUrls(){

  var formID = '1CDQd-FP9FL9K-1zKsJwKRJhCSU5taxod7PSDtPNn6YM';
  var sheetName = 'Raw Data';
  var columnName = 'Edit Link' ;
  var startRow = 2;

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
  var columnIndex = headers[0].indexOf(columnName);
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openById(formID)
  for(var i = startRow-1; i < data.length; i++) {
    if(data[i][0] != '' && data[i][columnIndex] == '') {
      var timestamp = data[i][0];
      var formSubmitted = form.getResponses(timestamp);
      if(formSubmitted.length < 1) continue;
      var editResponseUrl = formSubmitted[0].getEditResponseUrl();
      sheet.getRange(i+1,columnIndex + 1).setValue(editResponseUrl);
    }
  }
}

//second attempt 
// Create the Form Submit Trigger
function createFormTrigger() {
  var triggerName = "https://docs.google.com/forms/d/e/1FAIpQLSeil-bcfuPNPATPG_9EgnnoZhqBezcthBcE62epuInkXiy5Pw/viewform?usp=sf_link";
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger(triggerName)
    .forSpreadsheet(spreadsheet)
    .onFormSubmit()
    .create();

}

function addFormResponseUrl(e) {

  // Get the Google Form linked to the response
  var responseSheet = e.range.getSheet();
  var googleFormUrl = responseSheet.getFormUrl();
  var googleForm = FormApp.openByUrl(googleFormUrl);

  // Get the form response based on the timestamp
  var timestamp = new Date(e.namedValues.Timestamp[0]);
  var formResponse = googleForm.getResponses(timestamp).pop();

  // Get the Form response URL and add it to the Google Spreadsheet
  var responseUrl = formResponse.getEditResponseUrl();
  var row = e.range.getRow();
  var responseColumn = 1; // Column where the response URL is recorded.
  responseSheet.getRange(row, responseColumn).setValue(responseUrl);
}

https://docs.google.com/spreadsheets/d/1TOj72oc3Lboku0IvhsgHFi0utKG8rIZqT7IFlsKion4/edit?usp=sharing

https://forms.gle/AdbiXkazo6VoqJtm8

Я ожидаю, что URL-адрес ответа будет в столбце A после отправки формы.

Бонусные баллы - это способ сделать URL кликабельным и автоматически выглядеть чище ... например, просто добавить слово «Ссылка» в каждой ячейке в столбце «А», которое является гиперссылкой на форму, или даже преобразовать каждый из них. URL-адрес кнопки в столбце A.

Я играю со скриптом приложения Google в течение недели, поэтому любая помощь или руководство очень приветствуются.

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