我有一个谷歌脚本来构建一个谷歌表格。该脚本使用包含问题和相应选项的电子表格填写表单。
表格中显示的问题需要定期更新。 我希望通过更改电子表格中的问题来更新表单中的问题,如下所示:
1)我使用OnOpen作为脚本,因此每次访问表单时脚本都会重新构建最新的表单。
但是,目前我每次运行脚本时都会在表单中添加一个新问题,之前过时的问题仍然留在表单上 因此,我的目的是编辑脚本上已有的问题来更新它以显示最新的问题。 我找不到在Google脚本中编辑现有表单问题的方法。 有人知道出路吗?
问题和选项会定期在电子表格中更新,
Google表示无论采用何种方式手动编辑表单,也可以通过App脚本
完成我希望脚本能够自动编辑问题。 但是,我所有尝试找到能够编辑表单上已有问题的功能都是徒劳的! (PS:我找到的所有功能都能够创建一个新问题及其选项/无法编辑现有表单问题/选项)
任何人都知道Google app脚本的这种功能.. ??
针对上述目标的任何解决方法?
提前致谢! :)
答案 0 :(得分:6)
您正在使用代码创建项目。所以,你正在使用:
form.addListItem()
或
form.addCheckboxItem()
等
每个项目都是特定类型。要更新项目,您需要使用以下方法之一:
as_ItemNameHere_Item()
例如:
var myCheckBoxItem = FormApp.openById(id).getItemById(id).asCheckboxItem();
将项目 作为 作为正确的项目后,您可以按照首先创建项目的方式进行更改。
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)
};
};
};
以上脚本不完整。您需要以某种方式匹配哪些项目与新的更改。如果您的所有表单问题都是相同的项目类型,那么您将不需要测试项目类型是什么。
getItems()
返回的有3个项目类型不是问题项目。他们是:
因此,如果您的表单中有任何3个,则应检查项目类型。