我有一个连接到Google工作表的Google表单。问题是我的表单中存在未通过表单提交的现有数据,因此我希望能够从表单中获取数据,并为表单中未填写的每一行提交表单。我可以使用脚本编辑器执行此操作吗?
编辑:这是我目前拥有的代码。现在,每个表单都已提交,但字段说“未定义”
答案 0 :(得分:0)
以下是为我的电子表格中的每一行数据正确提交表单的代码。名字在列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();
}
}