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

如何通过Google App Script实现Google Form响应自动写入Google Spreadsheet

问题结论

该需求完全可实现,不需要采用「从电子表格生成表单」的方案,直接在Google App Script中调用表单原生的目标绑定方法即可完成配置,效果和手动在表单后台设置响应存储位置完全一致。

实现逻辑

核心调用Form服务提供的setDestination()方法,即可给已独立创建的表单绑定响应存储的目标电子表格。如果需要指定存储到电子表格内的某张特定工作表,只需要在首次绑定后,把表单自动生成的默认响应表替换为你指定的工作表即可,全程不需要自己写响应同步逻辑,原生同步的稳定性远高于自定义触发器。

可复用代码

function configFormResponseTarget() {
  // 替换为你实际的表单ID
  const formId = '请填入你的Google Form ID';
  // 替换为你实际的目标电子表格ID
  const targetSpreadsheetId = '请填入你的Google Spreadsheet ID';
  // 替换为你要存储响应的指定工作表名称
  const targetSheetName = '请填入目标工作表名称';

  const form = FormApp.openById(formId);
  const targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId);

  // 首次绑定目标电子表格,系统会自动生成一张默认的响应存储表
  form.setDestination(FormApp.DestinationType.SPREADSHEET, targetSpreadsheetId);
  
  // 定位系统自动生成的默认响应表
  const defaultResponseSheet = form.getResponses().length > 0 
    ? targetSpreadsheet.getSheets().find(sheet => sheet.getRange(1,1).getValue() === '时间戳') // 表单响应表第一列固定为时间戳表头
    : targetSpreadsheet.getSheets().slice(-1)[0]; // 无历史响应时,最新生成的表就是默认响应表

  // 检查指定的目标工作表是否存在,不存在则新建
  let targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);
  if (!targetSheet) {
    targetSheet = targetSpreadsheet.insertSheet(targetSheetName);
  }

  // 把默认响应表的表头、已有历史响应全部复制到指定工作表
  const existingData = defaultResponseSheet.getDataRange().getValues();
  if (existingData.length > 0) {
    targetSheet.getRange(1, 1, existingData.length, existingData[0].length).setValues(existingData);
  }

  // 删除系统自动生成的默认响应表
  targetSpreadsheet.deleteSheet(defaultResponseSheet);
}

注意事项

  • 运行脚本前请确认你对操作的表单、电子表格均拥有编辑权限,首次运行需要授权对应服务的访问权限
  • 脚本执行完成后,所有新提交的表单响应会自动追加到你指定的工作表中,不需要额外配置触发器
  • 如果你不需要保留历史响应,也不需要提前创建指定工作表,直接运行form.setDestination(FormApp.DestinationType.SPREADSHEET, targetSpreadsheetId),之后把系统自动生成的默认响应表重命名为你需要的表名即可,效果完全一致
  • 不要给同一个表单重复绑定多个电子表格作为响应目标,会导致响应同步异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:03:33