这是一个动态表单生成器的脚本,它来自电子表格。
function createForm2() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("makechoice");
var dataRange = ss.getRange(2,1,40,20);
var data = dataRange.getValues();
var form = FormApp.create("Make a Test");
for (i in data) {
var row = data[i];
var title = row[0];
var word = row[1];
var qst = row[2];
var ans1 = row[3];
var ans2 = row[4];
var ans3 = row[5];
var ans4 = row[6];
var fnb = row[7];
var url = row[8];
var ans5 = row[9];
var ans6 = row[10];
var ans7 = row[11];
var ans8 = row[12];
var ans9 = row[13];
var ans10= row[14];
var ans11= row[15];
var ans12= row[16];
var ans13= row[17];
var ans14= row[18];
var ans15= row[19];
var ans16= row[20];
if ( word == "M Choice") {form.addMultipleChoiceItem()
.setTitle(qst)
.setChoiceValues([ans1,ans2,ans3,ans4])
.showOtherOption(false);
}
else if ( word == "Text") {form.addTextItem()
.setTitle(ans1)
}
else if (word == "True/False") {form.addMultipleChoiceItem()
.setTitle(qst)
.setChoiceValues(['True', 'False'])
}
else if (word == "Video") { form.addVideoItem()
.setTitle(qst)
.setHelpText(qst)
.setVideoUrl(ans1);
}
else if ( word == "Paragraph") {form.addParagraphTextItem()
.setTitle(qst)
}
else if (word == "Grid") {form.addGridItem()
.setTitle(qst)
.setRows([ans1, ans2, ans3, ans4])
.setColumns(['Boring', 'So-so', 'Interesting']);
}
else if (word == "List") {form.addListItem()
.setTitle(qst)
.setChoiceValues([ans1, ans2, ans3, ans4]);
}
else if (word == "Image") {var img = UrlFetchApp.fetch(url);
form.addImageItem()
.setTitle(qst)
.setHelpText(qst)
.setImage(img);
}
}
}
这将按照电子表格中输入的确切顺序创建表单,并允许通过电子表格分配值和问题类型。现在,我想扩展它以允许在电子表格中指明的表格中的分页符,方法是添加此内容。
else if (word == "PageBreak") {form.addPageBreakItem()
.setTitle(qst);
工作正常。但是现在我注意到了一个有趣的功能,您可以在其中为问题分配响应以跳转到特定页面。在每个响应项中,您可以输入PageNavigationType
。这是我遇到麻烦的一步。我创建了一个单独的列来指示页码,但是我并不确定如何将其链接到表单中的特定分页符。我看过的一个例子显示了分配给变量的分页符,然后问题响应将调用该变量。我设置脚本的方式并不允许我这样做。
答案 0 :(得分:0)
通过定义和引用要创建的页面,在选项/列表项一次完成后导航到新创建页面。
实施例
item.createChoice('Cats', form.addPageBreakItem().setTitle('TestPag')),
此示例是对以下小脚本的修改: this Google Developers page
它和我一起做了伎俩:)