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

Google Forms响应导入Google Slides失败问题求助

问题:Google表单响应无法导入到Google Slides模板

我需要将Google Forms的响应数据导入到Google Slides演示文稿中,自行编写代码后发现数据无法显示在模板内,代码如下:

function onFormSubmit(e) {
  
  var PRESENTATION_ID = "XXXXXXXXXXXX";
  
  var presentation = SlidesApp.openById(PRESENTATION_ID);

  var items = e.response.getItemResponses();

  presentation.replaceAllText('{{Nom}}', items[0].getResponse());
  presentation.replaceAllText('{{Date}}', items[1].getResponse());
  var image = items[2].getResponse();
  presentation.getSlides().forEach(s => {
  s.getShapes().forEach(e => {
    if (e.getText().asString().trim() == '{{Logo}}') {
      e.replaceWithImage(DriveApp.getFileById(Array.isArray(image) ? image[0] : image).getBlob());
    }
  })
})};

注:代码中的PRESENTATION_ID已替换为真实ID,但提交表单后数据仍未在Slides模板中显示。

排查与解决步骤

  • 确认触发器配置:确保onFormSubmit函数已绑定表单的「表单提交」触发器。操作路径:脚本编辑器左侧「触发器」图标 → 检查是否存在对应触发器,触发源为目标表单,事件类型为「表单提交」。
  • 核对响应项索引:表单问题的顺序决定了items数组的索引,若调整过表单问题,索引可能不匹配。可添加日志调试:
    Logger.log(items.map(item => ({title: item.getItem().getTitle(), response: item.getResponse()})));
    
    提交测试表单后,查看脚本编辑器「查看」→「日志」,确认每个索引对应的问题和响应值是否正确。
  • 检查模板占位符:确保Slides模板中的{{Nom}}、{{Date}}、{{Logo}}是纯文本,无多余空格、大小写错误,且未嵌套在复杂形状或文本框中。
  • 验证权限与访问:首次运行脚本需完成授权,确认脚本有权访问目标Slides和表单上传的图片文件。可单独测试通过图片ID获取Blob的逻辑,排除权限问题。
  • 添加显式保存:在代码末尾添加presentation.saveAndClose(),确保修改被保存:
    // 现有代码结束后添加
    presentation.saveAndClose();
    
  • 排查图片替换逻辑:若图片无法显示,先固定一个已知有效的图片ID测试替换功能,确认是否是图片ID获取错误导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:11:00