处理分页符/节



我使用谷歌应用程序脚本更新下拉菜单在谷歌表单,脚本工作得很好。下拉列表太大了,我不得不在Google Form中创建多个部分。我正在努力创建一个跳过分节符的代码。

我猜临界点是主函数中的forEach方法:

labels.forEach(function(label,i)

我不确定我应该使用哪种方法,以便主函数更新所有下拉列表。

FormApp.PageNavigationType.CONTINUE;

正确的方法使用?

下面是目前为止我写的代码:
var ssID = "...";
var formID = "...";
var wsData = SpreadsheetApp.openById(ssID).getSheetByName("data");  
var form = FormApp.openById(formID);
var section = form.getGoToPage(1);
function main(){
var labels = wsData.getRange(1,1,1,wsData.getLastColumn()).getValues()[0];

labels.forEach(function(label,i){
var options = wsData
.getRange(2,i+1,wsData.getLastRow()-1,1)
.getValues()
.map(function(o){ return o[0]})
.filter(function(o){ return o !==""});
updateDropDownUsingTitle(label,options);
});

}

function updateDropDownUsingTitle(title,values) {

var items = form.getItems();
var titles = items.map(function(item){
return item.getTitle();

});
var pos = titles.indexOf(title);
if(pos !== -1){
var item = items[pos];
var itemID = item.getId();
updateDropdown(itemID,values);
}
}
function updateDropdown(id,values) {
var item = form.getItemById(id);
item.asListItem().setChoiceValues(values);
}

一种方法是过滤列表项,使其只包含下拉列表项。

var items = form.getItems();
var listItems = items.filter(item=>item.getType() === 'LIST')

最新更新