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

如何将自定义Google Sheet Add-on关联到模板,让协作方直接在菜单启用?

实现Google Sheet模板与Add-on的关联,无需商店搜索且仅绑定当前文档

完全可以实现你想要的效果!下面是具体的方案和细节,完美匹配你提到的第二种授权特性:

核心思路

通过在你的Google Sheet模板中添加自定义引导菜单,让复制模板的用户直接在文档内触发Add-on的安装流程,同时确保用户安装后,Add-on仅与当前模板副本绑定(不会出现在用户的所有文档中)。

具体实现步骤

1. 给模板添加自定义引导菜单

在你的模板中绑定一个简单的Google Apps Script脚本,当用户打开模板副本时,自动生成一个自定义菜单(比如「我的配套工具」),菜单里提供「安装/打开插件」选项。这个脚本只会跟着模板副本走,不会影响用户的其他文档。

示例代码如下:

function onOpen(e) {
  const ui = SpreadsheetApp.getUi();
  // 创建自定义菜单
  ui.createMenu('我的配套插件')
    .addItem('安装/打开插件', 'showAddonInstallPrompt')
    .addToUi();
}

function showAddonInstallPrompt() {
  const ui = SpreadsheetApp.getUi();
  
  // 尝试检测用户是否已在当前文档授权过Add-on
  try {
    // 替换成你的Add-on中一个无副作用的标识函数(比如获取版本号)
    const addonStatus = YourAddonNamespace.checkAvailability();
    ui.alert('插件已就绪!你可以在顶部「Add-ons」菜单中找到它啦~');
  } catch (error) {
    // 未安装/未授权时,显示安装指引弹窗
    const installGuide = HtmlService.createHtmlOutput(`
      <div style="padding: 20px; max-width: 400px;">
        <h3>安装配套插件</h3>
        <p>只需3步完成安装:</p>
        <ol>
          <li>点击顶部菜单栏的「Add-ons」</li>
          <li>选择「Get add-ons」进入应用市场</li>
          <li>搜索「你的插件名称」并完成安装</li>
        </ol>
        <p style="margin-top: 15px; color: #2ecc71;">安装后,仅当前文档的Add-ons菜单会显示该插件,不会影响你的其他文档!</p>
      </div>
    `);
    ui.showModalDialog(installGuide, '安装指引');
  }
}

2. 确保Add-on符合「文档绑定」的授权逻辑

你的Add-on需要发布到Google Workspace Marketplace,并且在开发时遵循以下规则:

  • 避免使用全域授权(即不要请求对用户所有文档的访问权限),仅请求当前文档的访问权限。
  • Add-on的onInstall和onOpen函数仅在用户主动在当前文档中启用插件时触发,不会自动在所有文档中加载。

这样就完全匹配你想要的第二个授权特性:

用户在该文档中使用过Add-on后,仅能在该文档的Add-ons菜单中看到它,除非用户单独安装了插件(此时才会在所有文档中显示)。

3. 模板的分发注意事项

  • 确保你的模板设置为「任何人可复制」,这样协作方能顺利获取副本。
  • 模板中的引导脚本会自动随副本复制,用户打开副本时无需额外操作就能看到自定义菜单。

关键优势

  • 无需用户手动去应用市场搜索,降低使用门槛;
  • 严格遵循你要的授权逻辑,不会强制Add-on出现在用户的所有文档中;
  • 引导流程清晰,用户能快速理解操作步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:15