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

如何使用Google Sheets配合Apps Script批量填充Google Forms问题?

问题修复方案

你的代码逻辑本身没有结构性错误,出现问题无标题的情况,主要是三个常见原因,对应修复方案如下:

核心问题排查点

    1. 表格取值异常:getValues()方法会返回单元格的原始值(公式返回的计算结果、日期对象、数字等),如果单元格是公式输出、或者存在特殊格式,很可能拿到空值或者非文本内容,导致设置标题失效
    1. 空单元格未过滤:如果A3:A14区间存在空白行,对应生成的问题标题就会为空
    1. 标识/权限问题:需要确认表格ID、工作表名称Atividades、表单ID和实际内容完全匹配,且你对两个文件都有编辑权限,首次运行脚本时要完成全部授权操作

修复后代码

function myForm() {
  // 打开表格和对应工作表
  const spreadsheet = SpreadsheetApp.openById("1iYXYufNQ1NMUibEFfSWVvfD0vVi14cqMQNBbIok_JzM");
  const sheet = spreadsheet.getSheetByName("Atividades");
  // 打开目标表单
  const formFinal = FormApp.openById("1_XYQcnlpg3EssBHI7X5T2QKyhplRj3FKufyBxPrJxQs");

  // 设置表单基础信息
  formFinal
    .setTitle("Pesquisa de Tempo Estimado - Finalístico - Rodada 3")
    .setDescription("Área temática: Finalístico \nRodada: 3")
    .setConfirmationMessage("Obrigado pela participação!")
    .setProgressBar(true);

  // 添加section header
  const sectionHeader = formFinal.addSectionHeaderItem();
  sectionHeader.setTitle("Atividades");

  // 读取A列区间的显示文本,打印日志方便排查
  const activityList = sheet.getRange("A3:A14").getDisplayValues();
  console.log("读取到的活动列表:", activityList);

  // 遍历生成问题,过滤空值
  activityList.forEach(row => {
    const activityName = row[0].trim();
    // 只给非空的内容生成问题
    if (activityName) {
      const textItem = formFinal.addTextItem();
      textItem.setTitle(activityName);
    }
  });
}

操作验证步骤

  1. 打开脚本编辑器的执行日志面板,运行脚本后查看日志输出的活动列表是否和你表格里的内容一致
  2. 如果日志输出为空,先核对工作表名称是否拼写正确、A3:A14区间是否确实有内容
  3. 如果日志输出正常但表单仍无标题,核对表单ID是否正确,确认你有该表单的编辑权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:15:03