【发布时间】:2017-01-16 13:57:33
【问题描述】:
我已经设置了一个脚本,可以将现有答案从 Google 表格插入到我的 Google 表单中(通过调整来自 this answer 的代码)。我将它插入到表单脚本中,当工作表中的所有字段都填满时,它就可以工作了。但是,表单问卷的性质是,某些部分可能会被跳过,从而使工作表中的某些字段为空。我想插入这样一个表格,其中一些答案字段为空白。
脚本在工作表中的所有字段都已填满时有效,但在遇到空白字段时不起作用(这意味着其中包含任何空白字段的第一行答案会停止脚本的执行) .
我想知道的是如何向我的脚本解释它应该只接受空白答案并插入它们?
这是脚本:
function ApendResponses() {
var form = FormApp.openById("1M-mTBlZPRj44jXs_YHj-cNa9yHjU25ItEWBuKtUvKZo");
var sheet = SpreadsheetApp.openByUrl("https://ocs.google.com/spreadsheets/d/1Jc9NVlN-Wcmd87E-FnyocHgl5Vx2WXqOGPTkhvXjCFU/");
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var x = 0; x < values.length; x++) {
var formResponse = form.createResponse();
var items = form.getItems();
var row = values[x];
var formItem = items[0.0].asTextItem();
var response = formItem.createResponse(row[1]);
formResponse.withItemResponse(response);
var formItem = items[1.0].asTextItem();
var response = formItem.createResponse(row[2]);
formResponse.withItemResponse(response);
var formItem = items[2.0].asListItem();
var response = formItem.createResponse(row[3]);
formResponse.withItemResponse(response);
var formItem = items[3.0].asPageBreakItem();
formResponse.withItemResponse(response);
var formItem = items[4.0].asListItem();
var response = formItem.createResponse(row[4]);
formResponse.withItemResponse(response);
var formItem = items[5.0].asPageBreakItem();
formResponse.withItemResponse(response);
var formItem = items[6.0].asListItem();
var response = formItem.createResponse(row[5]);
formResponse.withItemResponse(response);
var formItem = items[7.0].asPageBreakItem();
formResponse.withItemResponse(response);
var formItem = items[8.0].asTextItem();
var response = formItem.createResponse(row[6]);
formResponse.withItemResponse(response);
formResponse.submit();
Utilities.sleep(500);
}
};
示例Form is here,及其accompanying Sheet here(我在第三行留了一个空白字段用于测试目的)。
【问题讨论】:
标签: google-apps-script google-sheets google-forms