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

Google Apps Script报错“Slides is not defined”,求幻灯片页码替换方案

解决Google Apps Script添加幻灯片页码时的“Slides is not defined”错误

错误原因

Slides是Google Slides高级服务对象,你直接调用但未提前启用该服务,导致出现未定义错误。另外原代码存在效率问题——循环中多次调用批量更新接口,建议优化为一次批量处理。

下面提供两种解决方案,其中方案二更适合新手,无需额外配置高级服务:


方案一:启用高级服务并优化代码

1. 启用Slides高级服务

  • 打开脚本编辑器,点击左侧菜单「服务」→「添加服务」
  • 在弹窗中找到「Slides API」,点击「添加」完成启用(系统会自动关联Google Cloud Platform对应的API,若后续仍报错,可手动去GCP搜索启用Slides API)

2. 优化后的代码

function ReplacePgNm() {
  // 替换为你的演示文稿ID(从URL中提取,比如docs.google.com/presentation/d/XXXXXX/edit里的XXXXXX)
  const MainPPT_ID = "你的演示文稿ID";
  const MainPPT = SlidesApp.openById(MainPPT_ID);
  const slides = MainPPT.getSlides();
  const totalSlides = slides.length;
  const requests = [];

  // 收集所有替换请求
  slides.forEach((slide, index) => {
    const pageId = slide.getObjectId();
    requests.push({
      replaceAllText: {
        pageObjectIds: [pageId],
        replaceText: `${index + 1}/${totalSlides}`,
        containsText: { matchCase: true, text: "{{PgNm}}" }
      }
    });
  });

  // 一次批量执行所有替换操作
  Slides.Presentations.batchUpdate({ requests }, MainPPT_ID);
}

方案二:改用SlidesApp原生方法(无需启用高级服务)

直接使用SlidesApp的原生文本操作API,更适合新手,无需额外配置:

function ReplacePgNm() {
  // 替换为你的演示文稿ID
  const MainPPT_ID = "你的演示文稿ID";
  const MainPPT = SlidesApp.openById(MainPPT_ID);
  const slides = MainPPT.getSlides();
  const totalSlides = slides.length;

  slides.forEach((slide, index) => {
    const currentPageNum = index + 1;
    // 遍历幻灯片上所有文本框
    const textBoxes = slide.getShapes();
    textBoxes.forEach(textBox => {
      const textContent = textBox.getText();
      // 查找目标文本并替换
      const match = textContent.findText("{{PgNm}}");
      if (match) {
        match.getElement().asText().replaceText("{{PgNm}}", `${currentPageNum}/${totalSlides}`);
      }
    });
  });
}

注意事项

  • 务必替换代码中的"你的演示文稿ID"为实际ID
  • 若不需要大小写敏感,可将方案一中的matchCase: true改为false
  • 确保每张幻灯片的文本框中确实存在{{PgNm}}文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:22:18