对编码非常陌生。 下面的代码可以工作,但速度很慢 - 希望你能帮助我加快速度。
我有一张 Google 工作表,带有“数据”选项卡,我用它来填充我所有其他 Google 表单下拉菜单。
但是,我正在设置越来越多的需要此信息的表单,因此加快速度会很棒。 (下一步是能够将此代码设置为在“打开”表单上运行)
function two() {
main();
main2();
main3();
}
var ssID = "1cx5I5_JABvS5bi0R7fM9tiRp_XXa28EvuCQm0I7lNSI";
var formID = "1jIhQ7rdJ2u_BKR9Fsj_-k9eX1ngUvRtyigFlSNqrMT0"; // Old Ordering system https://docs.google.com/forms/d/1jIhQ7rdJ2u_BKR9Fsj_-k9eX1ngUvRtyigFlSNqrMT0/edit
var formID2 = "1GsqBYMCKQKFpg0qmfZmRDdC6TNR6Q-sWzwokeNbdm44"; // Labour broking https://docs.google.com/forms/d/1GsqBYMCKQKFpg0qmfZmRDdC6TNR6Q-sWzwokeNbdm44/edit
var formID3 = "1XvGLV0PzOYfG9ryvNKxI9Nwi62NjeZ4BCFlBNG1PS0Y"; //Site planing https://docs.google.com/forms/d/1XvGLV0PzOYfG9ryvNKxI9Nwi62NjeZ4BCFlBNG1PS0Y/edit
var wsData = SpreadsheetApp.openById(ssID).getSheetByName("data");
var form = FormApp.openById(formID);
var form2 = FormApp.openById(formID2);
var form3 = FormApp.openById(formID3);
//BELOW IS HOW WE STARTED WORKING OUT HOW TO GET THE INFO WE NEEDED
//function myFunction() {
//var item = form.getItemById(831533065);
//var values = ["Nic","Tobie"];
//item.asListItem().setChoiceValues(values);
//var items = form.getItems();
//Logger.log(items[0].getId().toString());
//}
function main(){
var labels = wsData.getRange(1, 1,1,wsData.getLastColumn()).getValues()[0];
labels.forEach(function(label,i){
//Logger.log(label);
var options = wsData
.getRange(2, i + 1,wsData.getLastRow()-1,1)
.getValues()
.map(function(o){ return o[0] })
.filter(function(o){ return o !== ""});
//Logger.log(options);
updateDropdownUsingTitle(label,options);
});
}
function updateDropdownUsingTitle(title,values) {
//var title = "Name of person completing this form";
//var values = ["r","f","p"];
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();
updteDropdown(itemID,values);
}
}
function updteDropdown(id,values) {
var item = form.getItemById(id);
item.asListItem().setChoiceValues(values);
}
function main2(){
var labels2 = wsData.getRange(1, 1,1,wsData.getLastColumn()).getValues()[0];
labels2.forEach(function(label2,i){
//Logger.log(label);
var options2 = wsData
.getRange(2, i + 1,wsData.getLastRow()-1,1)
.getValues()
.map(function(o){ return o[0] })
.filter(function(o){ return o !== ""});
//Logger.log(options);
updateDropdownUsingTitle2(label2,options2);
});
}
function updateDropdownUsingTitle2(title2,values2) {
//var title = "Name of person completing this form";
//var values = ["r","f","p"];
var items2 = form2.getItems();
var titles2 = items2.map(function(item){
return item.getTitle()
});
var pos = titles2.indexOf(title2);
if(pos !== -1){
var item2 = items2[pos];
var itemID2 = item2.getId();
updteDropdown2(itemID2,values2);
}
}
function updteDropdown2(id,values2) {
var item2 = form2.getItemById(id);
item2.asListItem().setChoiceValues(values2);
}
function main3(){
var labels3 = wsData.getRange(1, 1,1,wsData.getLastColumn()).getValues()[0];
labels3.forEach(function(label3,i){
//Logger.log(label);
var options3 = wsData
.getRange(2, i + 1,wsData.getLastRow()-1,1)
.getValues()
.map(function(o){ return o[0] })
.filter(function(o){ return o !== ""});
//Logger.log(options);
updateDropdownUsingTitle3(label3,options3);
});
}
function updateDropdownUsingTitle3(title3,values3) {
//var title = "Name of person completing this form";
//var values = ["r","f","p"];
var items3 = form3.getItems();
var titles3 = items3.map(function(item){
return item.getTitle()
});
var pos = titles3.indexOf(title3);
if(pos !== -1){
var item3 = items3[pos];
var itemID3 = item3.getId();
updteDropdown3(itemID3,values3);
}
}
function updteDropdown3(id,values3) {
var item3 = form3.getItemById(id);
item3.asListItem().setChoiceValues(values3);
}
重要:
样品:
var ssID = "1cx5I5_JABvS5bi0R7fM9tiRp_XXa28EvuCQm0I7lNSI";
var formID = "1jIhQ7rdJ2u_BKR9Fsj_-k9eX1ngUvRtyigFlSNqrMT0"; // Old Ordering system https://docs.google.com/forms/d/1jIhQ7rdJ2u_BKR9Fsj_-k9eX1ngUvRtyigFlSNqrMT0/edit
var formID2 = "1GsqBYMCKQKFpg0qmfZmRDdC6TNR6Q-sWzwokeNbdm44"; // Labour broking https://docs.google.com/forms/d/1GsqBYMCKQKFpg0qmfZmRDdC6TNR6Q-sWzwokeNbdm44/edit
var formID3 = "1XvGLV0PzOYfG9ryvNKxI9Nwi62NjeZ4BCFlBNG1PS0Y"; //Site planing https://docs.google.com/forms/d/1XvGLV0PzOYfG9ryvNKxI9Nwi62NjeZ4BCFlBNG1PS0Y/edit
var wsData = SpreadsheetApp.openById(ssID).getSheetByName("data");
var form1 = FormApp.openById(formID);
var form2 = FormApp.openById(formID2);
var form3 = FormApp.openById(formID3);
var formArray = [form1, form2, form3];
function main(){
var labels = wsData.getRange(1, 1,1,wsData.getLastColumn()).getValues()[0];
var values = wsData.getRange(2, 1, wsData.getLastRow()-1,wsData.getLastColumn()).getValues();
formArray.forEach(function(form){
var items = form.getItems();
var titles = items.map(function(item){
return item.getTitle()
});
labels.forEach(function(label,i){
//Logger.log(label);
var options = values.map(function(row){return row[i]})
.filter(function(o){ return o !== ""});
//Logger.log(options);
var pos = titles.indexOf(label);
if(pos !== -1){
var item = items[pos];
var itemID = item.getId();
item.asListItem().setChoiceValues(options);
}
});
})
}