在新的脚本编辑器中创建和测试 Google Sheets 插件

All*_*ard 5 ide add-on google-sheets google-apps-script google-workspace

我使用“旧”Apps Script IDE 创建了几个内部插件来自动化我们公司内的一些工作流程。现在我想使用去年 12 月发布的全新 Apps Script IDE 创建一个新的。一切看起来都很好并且工作得很好,但是有一些事情我不明白。

首先:使用部署时,Google Workspace Marketplace IDE 会声明“您的部署 ID 将识别您的应用支持的所有 Google Workspace 服务”。使用部署 ID 时。因此,我已将我的部署 ID 粘贴到其中。只需一个简单的脚本即可创建附加菜单并运行导致警报的函数:

function onInstall () {
  onOpen()
}

function onOpen () {
  var ui = SpreadsheetApp.getUi()
  var menu = ui.createAddonMenu()

  // Create menu structure
  menu
    .addItem('Create proposal', 'proposalShowPopup')

  // Add menu to UI
  menu.addToUi()
}

function proposalShowPopup() {
  Browser.msgBox('Test')
}
Run Code Online (Sandbox Code Playgroud)

但是,当我部署它时,我可以看到市场中的列表,但无法将其安装在我需要的工作表中。

此外,可能因为我尚未声明此插件为表格插件,所以我无法安装本文中提到的测试部署: 通过 Google测试 Google Workspace 插件InstallApps 脚本的部署对话框中缺少。

我阅读了很多有关该appsscript.json文件的信息,但除了以下适用于我的脚本的代码行之外,找不到有关该文件应包含的内容的任何信息:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Sheets",
        "version": "v4",
        "serviceId": "sheets"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}
Run Code Online (Sandbox Code Playgroud)

关于如何使用新的 IDE 创建仅限表格的附加组件(如前所述,效果很好),有什么想法吗?

任何朝着正确方向的帮助或推动将不胜感激。

ale*_*e13 8

您无法在表格中安装附加组件的原因本质上是因为您没有在清单中声明有关脚本是附加组件的任何内容。

由于您希望它专门在表格中使用,因此清单appscript.json文件应类似于以下内容:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Sheets",
        "version": "v4",
        "serviceId": "sheets"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "addOns": {
    "sheets": {
      "homepageTrigger": {
        "runFunction": "proposalShowPopup"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,addOns已添加参数以及参数sheets

addOns参数具有以下结构,它表示用于定义附加组件的内容和行为的配置。

{
  "common": {
    object (Common)
  },
  "calendar": {
    object (Calendar)
  },
  "drive": {
    object (Drive)
  },
  "gmail": {
    object (Gmail)
  },
  "docs": {
    object (Docs)
  },
  "sheets": {
    object (Sheets)
  },
  "slides": {
    object (Slides)
  }
}
Run Code Online (Sandbox Code Playgroud)

至于sheets参数,它具有以下结构 - 类似于具有的大多数参数之一addOns;但是,既然您提到它,那么sheets这将清楚地表明这些附加类型适用于哪一种。

{
  "homepageTrigger": {
    object (HomepageTrigger)
  },
  "onFileScopeGrantedTrigger": {
    object (OnFileScopeGrantedTrigger)
  }
}
Run Code Online (Sandbox Code Playgroud)

相应地设置清单文件后,您应该能够在转到“测试部署”时看到弹出的“安装”按钮:

安装时添加

参考