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

如何用Google Apps Script从零创建临时表单?

从零创建临时空白表单并添加颜色选择功能

原脚本通过openById调用已有表单,要从零创建临时空白表单,只需替换表单初始化方式,同时优化颜色选项添加逻辑、支持从电子表格读取颜色列表,具体实现如下:

修改后的完整代码

function initForm() {
  var sheetID = "1C-TqfI989-D-VWFe6Xdvc0LQoqAX2T2C9zUFbkPQSXw";
  // 1. 创建临时空白表单,自定义表单标题
  var form = FormApp.create("临时颜色选择表单");
  var sheet = SpreadsheetApp.openById(sheetID);
  
  // 2. 从电子表格读取颜色列表(假设颜色存放在Sheet1的A列,A1为表头,A2及以下为颜色值)
  var colorRange = sheet.getRange("Sheet1!A2:A").getValues();
  var colors = colorRange.filter(row => row[0] !== "").map(row => row[0]);
  // 若表格无数据, fallback 到硬编码颜色
  if (colors.length === 0) {
    colors = ["red", "blue", "green", "black", "orange", "purple"];
  }

  // 3. 添加颜色选择多选题
  var colorItem = form.addMultipleChoiceItem();
  colorItem.setTitle("请选择颜色");

  // 4. 批量添加颜色选项(修复原脚本覆盖选项的问题)
  var choices = [];
  colors.forEach(color => {
    choices.push(colorItem.createChoice(color));
  });
  colorItem.setChoices(choices).showOtherOption(true);

  // 可选:打印新表单链接,方便快速查看
  Logger.log("新表单编辑链接:" + form.getEditUrl());
}

关键修改说明

  • 创建空白表单:用FormApp.create("表单标题")替代FormApp.openById(formID),该方法会直接在Google Drive中生成新的空白表单,返回对应的Form对象。
  • 从电子表格取颜色:通过getRange获取指定列数据,过滤空行后生成颜色数组,摆脱硬编码限制;表格无数据时保留硬编码作为备选。
  • 修复选项覆盖问题:原脚本每次调用setChoices([item.createChoice(color)])会覆盖之前所有选项,最终仅保留最后一个颜色。现在先收集所有Choice对象,再一次性设置,确保所有颜色正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:01:10