使用 Google Apps 脚本将 Google 表单问题添加到表单的特定部分

Add a Google Form question to a specific section of a form using Google Apps Script

如果之前有人回答过这个问题,我深表歉意,但我已经进行了广泛的研究,结果很短。

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

我知道如何添加新问题,

form.addTextItem();

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

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

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

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

section.addTextItem();

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

任何帮助将不胜感激

亲切的问候,

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

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

  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);
}

注:

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

参考文献:

如果这不是您想要的结果,我深表歉意。