首页 > 解决方案 > 使用 Google Apps 脚本将 Google 表单问题添加到表单的特定部分

问题描述

抱歉,如果之前已经回答过这个问题,但我已经进行了广泛的研究并且没有提出任何建议。

我正在尝试向已经存在的 Google 表单的各个部分添加一些问题。

我知道如何添加一个新问题,

form.addTextItem();

但这会将其附加到表格的末尾。

我也知道如何获取部分列表,

var sections = form.getItems(FormApp.ItemType.PAGE_BREAK);
var section = sections[0];

但我一直无法找到将问题添加到特定部分的方法,例如,

section.addTextItem();

我不确定这是否是不可能的,或者我是否遗漏了一些非常简单的东西,但我很惊讶以前没有人遇到过这个问题。

任何帮助将非常感激

亲切的问候,

标签: google-apps-scriptgoogle-forms

解决方案


  • 您想将新项目添加到特定部分。

不幸的是,没有直接将新项目添加到特定部分的方法。那么这个解决方法怎么样?在此解决方法中,使用以下流程。

  1. 输入要添加新项目的部分索引。
  2. 创建新项目。
    • 在这个阶段,该项目被添加到最后一个部分的最后一个索引中。
  3. 检索所有部分。
  4. 检索部分的索引。
    • 截面的边界可以称为PAGE_BREAK
  5. 使用 moveItem 方法将创建的项目移动到输入的节索引。

通过这个流程,可以实现向特定部分添加新项目。

示例脚本:

var sectionIndex= 1; // Please set the index you want to insert.

var form = FormApp.getActiveForm();

var newItem = form.addTextItem().setTitle("New sample item").getIndex(); // New sample item

var items = form.getItems(FormApp.ItemType.PAGE_BREAK);
var sections = [0];
for (var i = 0; i < items.length; i++) {
  sections.push(items[i].getIndex());
}
var insertIndex = sections[sectionIndex + 1] || null;
if (insertIndex) {
  form.moveItem(newItem, insertIndex);
}

笔记:

  • 在此示例脚本中,开头sectionIndex0.
    • 例如,当sectionIndexis时1,将创建的项目添加到第 2 部分。
  • 这是一个示例脚本。所以请根据您的情况进行修改。

参考:

如果这不是你想要的结果,我很抱歉。


推荐阅读