是否可以通过编程方式修改现有的Google文档表单?

时间:2019-03-15 18:04:15

标签: google-apps-script google-form

我有一个预先存在的表格,是交互式创建的。从我的实验中可以看出,如果以编程方式创建表单,则可以通过编程方式进行修改,但如果是交互式创建,则无法进行修改。

背景与维护有关:如果表单/电子表格所有者想要修改表单,则正确更新相关标签/表格的工作量很大。有一些复选框列表需要随着时间的推移进行更新。我正在编写一个脚本,用户可以在其中添加复选框项目的标签,并且它将根据需要更新所有选项卡/工作表...但是在尝试向表单添加复选框时遇到了麻烦。

“可变形式= FormApp.getActiveForm();”只是返回null。 “ openById”和:

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var form = FormApp.openByUrl(ss.getFormUrl());

似乎可以工作,但是当我遍历“表单”时,会得到一些奇怪的结果。例如:

for each (var i in form.getItems(FormApp.ItemType.CHECKBOX)) { 
    Logger.log(i);
    for each (var j in i) {
      Logger.log(j);
    }
}

虽然“表单”包含许多“项目”对象,但每个项目似乎都包含Item类的源代码:

> [19-03-15 07:53:57:329 HST] Item 
> [19-03-15 07:53:57:330 HST] function asPageBreakItem() {/*
> */} [19-03-15 07:53:57:331 HST] function asParagraphTextItem() {/*
> */} [19-03-15 07:53:57:331 HST] function getHelpText() {/*
> */} [19-03-15 07:53:57:332 HST] function getIndex() {/*
> */} [19-03-15 07:53:57:332 HST] function asTimeItem() {/*
> */} [19-03-15 07:53:57:332 HST] function asImageItem() {/*
> */} [19-03-15 07:53:57:333 HST] function asScaleItem() {/*
> */} [19-03-15 07:53:57:333 HST] function getId() {/*
> */} [19-03-15 07:53:57:333 HST] function asMultipleChoiceItem() {/*
> */} [19-03-15 07:53:57:334 HST] function getTitle() {/*
> */} [19-03-15 07:53:57:334 HST] function asGridItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asDurationItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asVideoItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asTextItem() {/*
> */} [19-03-15 07:53:57:336 HST] function asDateTimeItem() {/*
> */} [19-03-15 07:53:57:336 HST] function setTitle() {/*
> */} [19-03-15 07:53:57:337 HST] function duplicate() {/*
> */} [19-03-15 07:53:57:337 HST] function asCheckboxItem() {/*
> */} [19-03-15 07:53:57:337 HST] function setHelpText() {/*
> */} [19-03-15 07:53:57:338 HST] function asDateItem() {/*
> */} [19-03-15 07:53:57:338 HST] function getType() {/*
> */} [19-03-15 07:53:57:339 HST] function asSectionHeaderItem() {/*
> */} [19-03-15 07:53:57:339 HST] function toString() {/*
> */} [19-03-15 07:53:57:339 HST] function asCheckboxGridItem() {/*
> */} [19-03-15 07:53:57:340 HST] function asListItem() {/*
> */}

希望我只是杂草丛生,我可以修改现有的复选框...并且有人可以指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您是否考虑过在电子表格中维护选项卡列表,然后从电子表格中填充表单?