Abh*_*bhi 3 google-apps-script google-forms
我有一个谷歌脚本来构建谷歌表格.该脚本使用包含问题和相应选项的电子表格填写表单.
表单中显示的问题需要定期更新.我希望通过更改电子表格中的问题来更新表单中的问题,如下所示:
1)我使用OnOpen作为脚本,因此每次访问表单时脚本都会重建最新的表单.
但是,目前每次运行脚本时都会在表单中添加一个新问题,之前过时的问题仍然保留在表单上,因此,目的是编辑脚本上已有的问题以更新它以显示最新的题.我找不到在Google脚本中编辑现有表单问题的方法.有人知道出路吗?
问题和选项会定期在电子表格中更新,
Google表示,无论何种方式,手动编辑表格也可以通过App脚本完成
我希望脚本能够自动编辑问题.但是,我所有尝试找到能够编辑表单上已有问题的功能都是徒劳的!(PS:我找到的所有功能都能够创建一个新问题及其选项/无法编辑现有表单问题/选项)
任何人都知道谷歌应用程序脚本的这种能力.. ??
针对上述目标的任何解决方法?
提前致谢!:)
您正在使用代码创建项目.所以,你正在使用:
form.addListItem()
Run Code Online (Sandbox Code Playgroud)
要么
form.addCheckboxItem()
Run Code Online (Sandbox Code Playgroud)
等等
每个项目都是特定类型.要更新项目,您需要使用以下方法之一:
as_ItemNameHere_Item()
Run Code Online (Sandbox Code Playgroud)
例如:
var myCheckBoxItem = FormApp.openById(id).getItemById(id).asCheckboxItem();
Run Code Online (Sandbox Code Playgroud)
一旦您将项目作为正确的项目,您可以改变它与创建它的方式相同.
function editFormItem() {
var form = FormApp.getActiveForm();
var allItems = form.getItems();
var i=0,
thisItem,
thisItemType,
myCheckBoxItem;
for (i=0;i<allItems.length;i+=1) {
thisItem = allItems[i];
thisItemType = thisItem.getType();
Logger.log('thisItemType: ' + thisItemType);
if (thisItemType===FormApp.ItemType.CHECKBOX) {
myCheckBoxItem = thisItem.asCheckboxItem();
myCheckBoxItem.setChoiceValues(values)
};
};
};
Run Code Online (Sandbox Code Playgroud)
上面的脚本不完整.您需要以某种方式匹配哪些项目与新的更改.如果您的所有表单问题都是相同的项目类型,那么您将不需要测试项目类型是什么.
返回的有3种项目类型getItems()不是问题项目.他们是:
因此,如果您的表单中有任何3个,则应检查项目类型.
| 归档时间: |
|
| 查看次数: |
5164 次 |
| 最近记录: |