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

如何使用Google Script将Google表单上传的多图插入Google幻灯片

实现结论

完全可以通过Google Apps Script实现该需求,不需要接入第三方工具。Google表单的文件上传题型本身支持单题多文件上传,所有上传的图片会自动存入你预设的Google Drive文件夹,表单提交的响应数据会携带全部上传图片的文件ID,搭配Slides服务即可适配1张、2张甚至更多张图片的自动插入、自动排版。

具体操作步骤
  • 前置配置
    先在Google表单中完成上传题设置:打开题目配置面板的「允许多个文件」开关,设置好文件存储的Drive路径,再将表单的响应目标绑定为新建的Google Sheets表格,后续脚本将从该表格读取上传文件的关联数据。
  • 编写功能脚本
    打开绑定好的响应Sheets表格,点击顶部菜单栏「扩展程序」-「Apps Script」进入脚本编辑器,清空默认的代码内容,粘贴下述代码,替换开头配置项里的参数为你自己的资源信息即可:
// 按需修改以下配置参数
const TARGET_SLIDES_ID = "替换为你要插入图片的Google幻灯片ID";
const UPLOAD_COL_INDEX = 3; // 上传题目在Sheets中的列号,A列为1、B列为2,按实际位置修改
const IMG_WIDTH = 320; // 单张插入图片的宽度,单位:像素
const IMG_HEIGHT = 210; // 单张插入图片的高度,单位:像素
const PAGE_MARGIN = 25; // 图片与幻灯片边缘、图片之间的边距,单位:像素

// 表单提交触发函数
function insertUploadImgsToSlides(e) {
  // 读取当前提交记录中的上传文件ID,多文件ID为逗号分隔的字符串
  const fileIdStr = e.values[UPLOAD_COL_INDEX - 1];
  // 拆分ID为数组,自动适配任意上传数量
  const imgFileIds = fileIdStr.split(',').map(id => id.trim());
  const slides = SlidesApp.openById(TARGET_SLIDES_ID);
  // 新建空白幻灯片承载当前提交的所有图片
  const currentSlide = slides.appendSlide(SlidesApp.PredefinedLayout.BLANK);
  const slidePageWidth = slides.getPageWidth();

  // 初始化排版坐标
  let posX = PAGE_MARGIN;
  let posY = PAGE_MARGIN;

  imgFileIds.forEach(fileId => {
    const file = DriveApp.getFileById(fileId);
    // 过滤非图片格式文件,避免插入报错
    if (!file.getMimeType().startsWith('image/')) return;
    
    // 插入图片并设置尺寸
    const insertedImg = currentSlide.insertImage(file);
    insertedImg.setWidth(IMG_WIDTH).setHeight(IMG_HEIGHT);

    // 自动换行排版:当前行剩余空间不足时切换到下一行
    if (posX + IMG_WIDTH + PAGE_MARGIN > slidePageWidth) {
      posX = PAGE_MARGIN;
      posY += IMG_HEIGHT + PAGE_MARGIN;
    }
    // 设置图片位置
    insertedImg.setLeft(posX).setTop(posY);
    posX += IMG_WIDTH + PAGE_MARGIN;
  });
}
  • 配置提交触发器
    在脚本编辑器左侧栏选择「触发器」选项,点击「添加触发器」:触发函数选择insertUploadImgsToSlides,部署类型选「Head」,事件源选择「来自电子表格」,事件类型选择「提交表单时」,保存后按弹窗提示完成账号授权即可。
适配说明
  • 授权时会弹出Google官方的安全验证提示,按流程授予脚本Sheets、Drive、Slides的操作权限即可,脚本全程运行在你个人的Google账号空间内,不会外传数据。
  • 如果单次上传图片量极大,可在循环逻辑中加分页判断,当Y轴坐标超过幻灯片高度时自动新建空白页继续插入,不会出现图片溢出页面的问题。
  • 不需要每次提交新建幻灯片的话,可以删掉新建页面的代码,指定固定页面ID插入即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:33:19