【发布时间】:2021-02-18 13:30:28
【问题描述】:
我正在使用 Google Apps 脚本更新 Google 表单中的下拉菜单,该脚本运行良好。下拉列表变得如此之大,以至于我不得不在 Google 表单中创建多个部分。我正在努力创建一个跳过分节符的代码。
我猜关键点是main函数中的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);
}
【问题讨论】:
-
“我正在努力创建一个跳过分节符的代码”是什么意思?
-
运行代码时出现以下错误:异常:项目类型的无效转换:PAGE_BREAK。在第 52 行。因为 asListItem() 试图将值设置为 PAGE_BREAK 项。我想找到一种方法来处理这个异常。
-
你可以try-catch那个函数,我的问题是下拉列表的目的是什么?
标签: javascript google-apps-script google-forms