使用 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();
我不确定这是不可能的,还是我遗漏了一些非常简单的东西,但我很惊讶之前没有其他人遇到过这个问题。
任何帮助将不胜感激
亲切的问候,
- 您想将新项目添加到特定部分。
遗憾的是,没有直接将新项目添加到特定部分的方法。那么这个解决方法怎么样?在此解决方法中,使用以下流程。
- 输入要添加新项目的部分的索引。
- 创建新项目。
- 在这个阶段,项目被添加到最后一节的最后一个索引。
- 检索所有部分。
- 检索章节索引。
- 该部分的边界可以称为
PAGE_BREAK
。
- 使用 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
。
- 例如,当
sectionIndex
为1
时,创建的项目被添加到第2部分。
- 这是一个示例脚本。所以请根据您的情况进行修改。
参考文献:
如果这不是您想要的结果,我深表歉意。
如果之前有人回答过这个问题,我深表歉意,但我已经进行了广泛的研究,结果很短。
我正在尝试向已存在的 Google 表单的各个部分添加一些问题。
我知道如何添加新问题,
form.addTextItem();
但这会将其附加到表单的末尾。
我也知道如何获取部分列表,
var sections = form.getItems(FormApp.ItemType.PAGE_BREAK);
var section = sections[0];
但我一直找不到向特定部分添加问题的方法,例如,
section.addTextItem();
我不确定这是不可能的,还是我遗漏了一些非常简单的东西,但我很惊讶之前没有其他人遇到过这个问题。
任何帮助将不胜感激
亲切的问候,
- 您想将新项目添加到特定部分。
遗憾的是,没有直接将新项目添加到特定部分的方法。那么这个解决方法怎么样?在此解决方法中,使用以下流程。
- 输入要添加新项目的部分的索引。
- 创建新项目。
- 在这个阶段,项目被添加到最后一节的最后一个索引。
- 检索所有部分。
- 检索章节索引。
- 该部分的边界可以称为
PAGE_BREAK
。
- 该部分的边界可以称为
- 使用 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
。- 例如,当
sectionIndex
为1
时,创建的项目被添加到第2部分。
- 例如,当
- 这是一个示例脚本。所以请根据您的情况进行修改。
参考文献:
如果这不是您想要的结果,我深表歉意。