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

如何在打开Google Spreadsheet时运行Google Workspace插件中的函数?

Google Workspace插件实现全局打开自动创建菜单的方案

Google Workspace插件和传统编辑器附加组件(原G Suite编辑器插件)的设计定位不同:前者主打跨Workspace应用的卡片式交互,后者专注于编辑器(Sheets/Docs等)的原生功能扩展(比如自定义菜单)。针对你要实现的「安装后打开任意表格自动创建菜单」需求,以下是可行方案:

方案一:使用编辑器附加组件(推荐)

这是最贴合需求的方式,因为编辑器附加组件的onOpen简单触发器天生支持全局生效:

  1. 保留传统的onOpen触发器函数:
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('我的自定义菜单')
    .addItem('功能1', 'function1')
    .addItem('功能2', 'function2')
    .addToUi();
}
  1. 在appsscript.json清单文件中配置addOns字段(编辑器附加组件配置),而非仅配置workspace字段:
{
  "timeZone": "Asia/Shanghai",
  "dependencies": {},
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "addOns": {
    "sheets": {
      "homepageTrigger": {
        "runFunction": "showSidebar",
        "enabled": true
      },
      "onFileOpenTrigger": {
        "runFunction": "onOpen"
      }
    }
  }
}

用户安装插件后,打开任意Google表格时,onOpen会自动触发并创建自定义菜单,同时你也可以保留侧边栏交互,兼容Workspace插件的使用场景。

方案二:纯Workspace插件的近似实现(无全局自动触发)

受限于Workspace插件的设计机制,无法实现完全全局的自动触发,但可以通过以下方式优化:

在用户第一次打开插件侧边栏时,引导其为当前表格创建onOpen可安装触发器,后续打开该表格时会自动加载菜单:

  1. 编写菜单初始化和触发器设置函数:
function initializeMenu() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('我的自定义菜单')
    .addItem('功能1', 'function1')
    .addItem('功能2', 'function2')
    .addToUi();
}

function setupTriggerForCurrentSheet() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const existingTriggers = ScriptApp.getProjectTriggers().filter(t => 
    t.getHandlerFunction() === 'initializeMenu' &&
    t.getEventType() === ScriptApp.EventType.ON_OPEN &&
    t.getTriggerSourceId() === ss.getId()
  );
  
  if (existingTriggers.length === 0) {
    ScriptApp.newTrigger('initializeMenu')
      .forSpreadsheet(ss)
      .onOpen()
      .create();
    SpreadsheetApp.getUi().alert('已为当前表格配置自动菜单,下次打开时将自动加载!');
  } else {
    SpreadsheetApp.getUi().alert('当前表格已配置自动菜单!');
  }
}
  1. 在插件侧边栏中添加按钮,调用setupTriggerForCurrentSheet函数,引导用户完成当前表格的触发器配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:11:04