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

寻求基于AppScript实现Google Sheet数据填充Google Form多下拉框的解决方案

如何用App Script将Google Sheet数据填充到Google Form下拉框里

Hey there! 我刚好做过类似的需求,这就给你一步步拆解实现方法,保证清晰可行。

1. 前期准备

  • 先把Google Sheet里的下拉选项整理好,建议放在单独的一列(比如Sheet1的A列,A1做表头,A2及以下是具体选项)
  • 打开对应的Google Form,记住需要填充的下拉框问题标题(后续用来定位对应的表单控件)

2. 编写App Script代码

打开你的Google Form,点击右上角「扩展程序」→「Apps Script」,清空默认代码后,粘贴以下脚本:

function populateDropdownFromSheet() {
  // 1. 替换成你自己的Sheet、Form信息
  const spreadsheetId = "你的Google Sheet ID"; // 从Sheet URL里提取,比如https://docs.google.com/spreadsheets/d/XXX/edit中的XXX
  const sheetName = "Sheet1"; // 存放选项的工作表名称
  const formId = "你的Google Form ID"; // 从Form URL里提取,比如https://docs.google.com/forms/d/XXX/edit中的XXX
  const dropdownQuestionTitle = "你的下拉框问题标题"; // 比如"选择产品类别"

  // 2. 从Sheet读取数据
  const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  const sheet = spreadsheet.getSheetByName(sheetName);
  // 从A2开始读取所有非空行的数据(可根据你的数据位置调整参数)
  const values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 1).getValues();
  // 转成一维数组并过滤空值
  const options = values.map(row => row[0]).filter(option => option !== "");

  // 3. 定位Form里的下拉框控件
  const form = FormApp.openById(formId);
  const items = form.getItems();
  let dropdownItem;

  for (let i = 0; i < items.length; i++) {
    // 通过标题和控件类型找到目标下拉框
    if (items[i].getTitle() === dropdownQuestionTitle && items[i].getType() === FormApp.ItemType.LIST) {
      dropdownItem = items[i].asListItem();
      break;
    }
  }

  // 4. 更新下拉框选项
  if (dropdownItem) {
    dropdownItem.setChoiceValues(options);
    console.log(`下拉框更新成功,共添加${options.length}个选项`);
  } else {
    console.log("未找到指定的下拉框,请检查问题标题是否正确");
  }
}

代码说明

  • 如果有多个下拉框需要填充,可以复制上述代码块,修改dropdownQuestionTitle和数据读取范围(getRange的参数)即可
  • getRange(2,1,sheet.getLastRow()-1,1) 对应「起始行=2,起始列=1,行数=总行数-1,列数=1」,可根据你的数据位置灵活调整

3. 测试脚本

  • 点击脚本编辑器的「运行」按钮,第一次运行会触发权限申请,按照提示完成授权(脚本需要访问你的Sheet和Form,完全安全)
  • 运行完成后回到Form,查看对应的下拉框,就能看到Sheet里的选项已经填充好了

4. 进阶:自动同步数据(可选)

如果希望Sheet数据更新时,Form下拉框自动同步,可以添加触发器:

  1. 在脚本编辑器左侧点击「触发器」图标(时钟形状)
  2. 点击「添加触发器」,设置:
    • 选择运行函数:populateDropdownFromSheet
    • 部署类型:选择「基于时间的触发器」(定时更新)或「从电子表格提交」(Sheet有编辑就触发)
    • 根据需求设置触发频率(比如每小时、每天)

注意事项

  • 运行脚本会覆盖下拉框原有选项,如果需要保留旧选项,可以修改代码,先通过dropdownItem.getChoices()获取原有选项,合并后再设置
  • 提前清理Sheet里的空值和重复选项,避免下拉框出现无效内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:02:34