Создание ответов формы с данными Google Sheet

У меня есть форма Google, которая связана с Google Sheet. Проблема в том, что на моем листе есть данные, которые не были отправлены через форму, поэтому я хочу иметь возможность получать данные с моего листа и отправлять форму для каждой строки, которая не была заполнена в форме. Могу ли я сделать это с помощью редактора сценариев?

Изменить: вот код, который у меня есть в настоящее время. Прямо сейчас каждая форма отправляется, но в полях написано "неопределено"

2[Настройка] 1[Функция]

1 ответ

Вот код, который правильно отправляет формы для каждой строки данных в моей электронной таблице. Имена указаны в столбце A, фамилии в столбце B и т. Д. Когда вы вызываете "sheet.getRange()" на листе, вам необходимо убедиться, что вы используете ".getValues ​​()", прежде чем создавать ответ формы с этими данными., Примечание: мой пример кода только отправляет формы для строк 3-8.

var ss = SpreadsheetApp.getActive(); 
var sheet = ss.getSheetByName("Data"); // grabs sheet

var formUrl = ss.getFormUrl();             
var form = FormApp.openByUrl(formUrl); // grabs the connected form
var questions = form.getItems();

// Getting the fields of the form questions 
var firstName = questions[0].asTextItem();
var lastName = questions[1].asTextItem();
var emergency = questions[2].asTextItem();
var email = questions[3].asTextItem();
var cell = questions[4].asTextItem();
var specialty = questions[5].asTextItem();


var dataFirstNames = sheet.getRange("A3:A10").getValues();
var dataLastNames = sheet.getRange("B3:B10").getValues();
var dataEmergencyNumbers = sheet.getRange("C3:C10").getValues();
var dataEmails = sheet.getRange("E3:E10").getValues();
var dataCellNumbers = sheet.getRange("F3:F10").getValues();
var dataSpecialties = sheet.getRange("G3:G10").getValues();


  function myFunction() {

  for(i = 0; i < 8; i++) {

      var formResponse = form.createResponse();

      var d1 = dataFirstNames[i];
      var r1 = firstName.createResponse(d1); 

      var d2 = dataLastNames[i];
      var r2 = lastName.createResponse(d2);

      var d3 = dataEmergencyNumbers[i];
      var r3 = emergency.createResponse(d3); 

      var d4 = dataEmails[i];
      var r4 = email.createResponse(d4);

      var d5 = dataCellNumbers[i];
      var r5 = cell.createResponse(d5); 

      var d6 = dataSpecialties[i];
      var r6 = specialty.createResponse(d6);

      formResponse.withItemResponse(r1);
      formResponse.withItemResponse(r2);
      formResponse.withItemResponse(r3);
      formResponse.withItemResponse(r4);
      formResponse.withItemResponse(r5);
      formResponse.withItemResponse(r6);

     formResponse.submit();
 } 

}

Другие вопросы по тегам