如何使用Google Apps脚本编辑现有Google表单项(问题) [英] How to Edit existing google form item (question) using google Apps Script

查看:12
本文介绍了如何使用Google Apps脚本编辑现有Google表单项(问题)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个构建Google表单的Google脚本。该脚本使用包含问题和相应选项的电子表格填写表单。

需要定期更新表单中显示的问题。 我希望通过更改电子表格中的问题来更新表单中的问题:

  1. 我使用onOpen()作为脚本,这样每次访问表单时,脚本都会重新构建最新的表单。
但是,目前每次我运行该脚本时,都会向表单中添加一个新问题,以前过时的问题仍然保留在表单中。 我需要使用脚本编辑表单上的现有问题,以更新它以显示最新的问题。 我找不到使用Google脚本编辑现有表格问题的方法。 有人知道怎么做吗?

问题和选项在电子表格中定期更新。

我希望脚本能够自动编辑问题。 我所有的尝试都是徒劳的,我试图找到一个函数来编辑表单上已经可用的问题! (PS:我找到的所有功能都可以创建新问题及其选项/但不能编辑现有的表单问题/选项)

推荐答案

若要更新现有项(问题),代码必须首先按其项类型获取该项,并且有许多不同的方法可按其类型获取项。

每种类型的问题都有不同的方法。问题的类型包括:

  • 复选框
  • 日期
  • 日期时间
  • 持续时间
  • 网格
  • 列表
  • 多项选择
  • 段落文本
  • 比例
  • 文本
  • 时间

为了更新现有项目,代码必须首先根据项目类型获取该项目。以下是一些示例:

  • asCheckboxItem()
  • asDateItem()
  • asListItem()
  • ETC

例如:

var myCheckBoxItem = FormApp.openById(id).getItemById(id).asCheckboxItem();

一旦代码将作为正确的项获取,您就可以按照最初创建它的方式对其进行更改。

function editFormItem() {
  var form = FormApp.getActiveForm();
  var allItems = form.getItems();
  var i,
      L=0,
      thisItem,
      thisItemType,
      myCheckBoxItem;
  
  L = allItems.length;

  for (i=0;i<L;i++) {
    thisItem = allItems[i];
    thisItemType = thisItem.getType();
    //Logger.log('thisItemType: ' + thisItemType);
    
    if (thisItemType===FormApp.ItemType.CHECKBOX) {
      myCheckBoxItem = thisItem.asCheckboxItem();
      myCheckBoxItem.setChoiceValues(values)
    };
  };
};

上面的脚本不完整。你需要以某种方式将什么项目与新的变化相匹配。如果您的所有表格问题都是相同的项目类型,则不需要测试项目类型。

getItems()返回的3个项目类型不是问题项目。它们是:

  • 图像
  • PAGE_BREAK
  • SECTION_HEADER

所以,如果您的表单中有这3项中的任何一项,您应该检查项目类型。

这篇关于如何使用Google Apps脚本编辑现有Google表单项(问题)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆