在 google 表单中添加复选框选项
Adding choices to check box in google form
我正在尝试在 Google 表单的复选框中添加新选项。
我正在尝试拥有与从 select 发送的文件一样多的复选框。
function listFilesInFolder() {
var folderName = "Box A";
var folder = DriveApp.getFolderById('some id');
var contents = folder.getFiles();
var list = [];
list.push(['Name','ID','Size']);
var files = folder.getFiles();
while (files.hasNext()) {
file = files.next();
//spread sheet info if needed
var row = []
row.push(file.getName(), file.getId(), file.getSize())
list.push(row);
var name = file.getName();
AddToDropDown(name);
console.log(name)
}
}
function AddToDropDown(name) {
var form = FormApp.openById('some id');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
ImageSelection.setChoices([
ImageSelection.createChoice(ImageSelection.getChoices().toString()),
ImageSelection.createChoice(name),
])
}
我试过这种方法,
function AddToDropDown(name) {
var form = FormApp.openById('some id');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
ImageSelection.createChoice(name);
}
似乎都不起作用。有什么想法吗?
- 您想将从文件夹中检索到的文件名添加为复选框。
- 您想为每个复选框指定每个文件名。
如果我的理解是正确的,这个修改怎么样?本次修改,修改了你的脚本。
此修改脚本的流程:
- 检索文件名并将它们放入数组。
- 使用
createChoice()
和检索到的文件名创建 "Choice" 个对象。
- 使用
setChoices()
设置 "Choice" 个对象。
修改后的脚本:
function addfileselect() {
var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
var files = folder.getFiles();
var names = [];
while (files.hasNext()){
var file = files.next();
names.push(file.getName());
}
var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
var choices = ImageSelection.getChoices();
for (var i = 0; i < names.length; i++) {
var choice = ImageSelection.createChoice(names[i]);
choices.push(choice);
}
ImageSelection.setChoices(choices);
}
注:
- 本次修改,如果已有复选框,则增加文件名复选框。如果您只想添加检索到的文件名的复选框,请将
var choices = ImageSelection.getChoices();
替换为 var choices = [];
.
- 添加的checkbox数量较多时可能会出错
参考文献:
如果我误解了您的问题,这不是您想要的结果,我深表歉意。
我是怎么解决的
var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
contents = folder.getFiles();
var list = [];
var files = folder.getFiles();
while (files.hasNext()){
file = files.next();
list.push(file.getName());
var name = file.getName();
//console.log(name)
}
AddToDropDown(list);
}
function AddToDropDown(row) {
console.log(row.length)
var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
var items = form.getItems();
var ImageSelection = items[0].asCheckboxItem();
ImageSelection.setChoiceValues(row.sort());
}```
我正在尝试在 Google 表单的复选框中添加新选项。 我正在尝试拥有与从 select 发送的文件一样多的复选框。
function listFilesInFolder() {
var folderName = "Box A";
var folder = DriveApp.getFolderById('some id');
var contents = folder.getFiles();
var list = [];
list.push(['Name','ID','Size']);
var files = folder.getFiles();
while (files.hasNext()) {
file = files.next();
//spread sheet info if needed
var row = []
row.push(file.getName(), file.getId(), file.getSize())
list.push(row);
var name = file.getName();
AddToDropDown(name);
console.log(name)
}
}
function AddToDropDown(name) {
var form = FormApp.openById('some id');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
ImageSelection.setChoices([
ImageSelection.createChoice(ImageSelection.getChoices().toString()),
ImageSelection.createChoice(name),
])
}
我试过这种方法,
function AddToDropDown(name) {
var form = FormApp.openById('some id');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
ImageSelection.createChoice(name);
}
似乎都不起作用。有什么想法吗?
- 您想将从文件夹中检索到的文件名添加为复选框。
- 您想为每个复选框指定每个文件名。
如果我的理解是正确的,这个修改怎么样?本次修改,修改了你的脚本。
此修改脚本的流程:
- 检索文件名并将它们放入数组。
- 使用
createChoice()
和检索到的文件名创建 "Choice" 个对象。 - 使用
setChoices()
设置 "Choice" 个对象。
修改后的脚本:
function addfileselect() {
var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
var files = folder.getFiles();
var names = [];
while (files.hasNext()){
var file = files.next();
names.push(file.getName());
}
var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
var items = form.getItems();
var ImageSelection = items[7].asCheckboxItem();
var choices = ImageSelection.getChoices();
for (var i = 0; i < names.length; i++) {
var choice = ImageSelection.createChoice(names[i]);
choices.push(choice);
}
ImageSelection.setChoices(choices);
}
注:
- 本次修改,如果已有复选框,则增加文件名复选框。如果您只想添加检索到的文件名的复选框,请将
var choices = ImageSelection.getChoices();
替换为var choices = [];
. - 添加的checkbox数量较多时可能会出错
参考文献:
如果我误解了您的问题,这不是您想要的结果,我深表歉意。
我是怎么解决的
var folder = DriveApp.getFolderById('1--5CnFK5DtptuO1bUu6MsA9oTknr-Fw2');
contents = folder.getFiles();
var list = [];
var files = folder.getFiles();
while (files.hasNext()){
file = files.next();
list.push(file.getName());
var name = file.getName();
//console.log(name)
}
AddToDropDown(list);
}
function AddToDropDown(row) {
console.log(row.length)
var form = FormApp.openById('1gcktQP5bKxCtAvtlgz4d9x7zI6M4koRmZkkjgefswIg');
var items = form.getItems();
var ImageSelection = items[0].asCheckboxItem();
ImageSelection.setChoiceValues(row.sort());
}```