You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Apps Script提升Google Form表单项添加效率

优化Google Apps Script批量添加Form表单项的方法

Google Apps Script的Form Service确实没有提供官方的批量添加表单项接口,但可以通过以下几种方式大幅提升添加效率,解决循环逐个添加耗时过长的问题:

1. 复制已有表单项代替重复创建

创建一个模板文本项后,通过复制操作生成新项,再修改标题等属性。复制操作的API开销远低于从头创建新项,能有效减少执行时间。

function addFormItemsOptimized() {
  var startTime = new Date();
  var form = FormApp.create("Test Optimized").setIsQuiz(true);
  
  // 创建基础模板项
  var templateItem = form.addTextItem()
    .setTitle("Question number 1")
    .setHelpText("Hint: answer should not be more than a couple of words");
  
  // 循环复制模板并修改标题
  for (var i = 2; i < 100; i++) {
    var newItem = templateItem.copy();
    newItem.setTitle("Question number " + i);
    form.addItem(newItem);
  }
  
  var endTime = new Date();
  var runTime = (endTime - startTime)/1000;
  Logger.log("runtime is: " + runTime);
}

2. 使用高级Forms API的BatchUpdate(最优方案)

通过高级Forms服务的batchUpdate方法,一次性提交所有创建表单项的请求,彻底避免循环中的多次网络往返,这是处理大量表单项时效率最高的方式。

前置步骤:

  • 在脚本编辑器中,点击「扩展」→「Apps Script」→「服务」,启用「Forms API」;
  • 同时需在Google Cloud Console中对应项目下启用Forms API(脚本关联的云项目可通过脚本编辑器的「项目设置」查看)。
function addFormItemsBatch() {
  var startTime = new Date();
  
  // 创建表单并获取ID
  var form = FormApp.create("Test Batch").setIsQuiz(true);
  var formId = form.getId();
  
  // 构建批量创建请求数组
  var requests = [];
  for (var i = 1; i < 100; i++) {
    requests.push({
      createItem: {
        item: {
          textItem: {
            title: "Question number " + i,
            helpText: "Hint: answer should not be more than a couple of words"
          },
          title: "Question number " + i
        },
        location: {
          index: i - 1 // 控制项在表单中的位置
        }
      }
    });
  }
  
  // 执行批量更新
  Forms.Forms.batchUpdate({requests: requests}, formId);
  
  var endTime = new Date();
  var runTime = (endTime - startTime)/1000;
  Logger.log("runtime is: " + runTime);
}

额外说明

  • 原代码的耗时波动主要来自网络请求的不稳定和Google服务的负载,优化后的方案能大幅降低这种波动;
  • 当需要添加的项数超过100时,batchUpdate的效率优势会更加明显,因为它将所有请求合并为一次网络调用。

内容的提问来源于stack exchange,提问作者Sherif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:25:38