google-apps-script - 使用 Google Apps 脚本将 Google 表单问题添加到表单的特定部分
问题描述
抱歉,如果之前已经回答过这个问题,但我已经进行了广泛的研究并且没有提出任何建议。
我正在尝试向已经存在的 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
is时1
,将创建的项目添加到第 2 部分。
- 例如,当
- 这是一个示例脚本。所以请根据您的情况进行修改。
参考:
如果这不是你想要的结果,我很抱歉。
推荐阅读
- c# - 使用 TokenLookUpEdit 的 SelectedItems 填充 WPF Datagrid
- hive - 如何在 Dataproc 集群中为 Hive 2.1.0 启用 LLAP?
- java - 如何接受动态 json 响应并向该对象添加一个键值并从 Spring Boot 控制器返回相同的 JSONObject
- reactjs - 通过 ReactJs 在对象数组中查找最大值
- reactjs - 如何解决,模块在反应组件中没有导出的成员?
- angular - 表单验证在 Microsoft Edge 上不起作用,文件输入始终无效
- java - 简单变更程序中的奇怪计数行为
- javascript - 如果为 null (JS),则不显示任何内容
- graph-theory - 如果可能,使用 DSF 查找包含 3 个以上顶点的循环
- html - 使用我的 JQuery UI Datepicker,为什么图标出现在单独的行上?