Создание ответов формы с данными Google Sheet
У меня есть форма Google, которая связана с Google Sheet. Проблема в том, что на моем листе есть данные, которые не были отправлены через форму, поэтому я хочу иметь возможность получать данные с моего листа и отправлять форму для каждой строки, которая не была заполнена в форме. Могу ли я сделать это с помощью редактора сценариев?
Изменить: вот код, который у меня есть в настоящее время. Прямо сейчас каждая форма отправляется, но в полях написано "неопределено"
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();
}
}