问题标签 [google-apps-script-addon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
389 浏览

google-apps-script - 以前工作的脚本现在在 onOpen 和 onInstall 上有问题;事件并不总是触发

所以,我有一堆 Google Apps 脚本,它们使用 onOpen/onInstall 函数来加载菜单或做一些小的启动工作。他们都在画廊工作了很长一段时间。

最近,我不确定具体时间,Google 更新的内容导致了以下问题:

  1. OnOpen 似乎并不总是在打开时执行
  2. OnInstall 触发但无权访问脚本中的函数。具体来说,如果您尝试选择一个菜单项,Apps Scripts 会显示一个错误,指出该功能不存在(但确实存在)

用户有一个非常糟糕的解决方法:安装脚本两次。不知何故,这会注册功能,并且 onInstall 会加载菜单。但这仅在工作表关闭之前有效;然后他们必须再次安装。

所以这是我的问题:

  1. 其他人是否有这个问题,他们是否找到了解决方法?
  2. 这是谷歌已经承认并正在解决的问题吗?
  3. 有谁知道这是什么时候发生的?

最后,我想建议在生产中为脚本“冻结”api 的想法。IE。我们在顶部放置一个变量,说明我们正在使用 API 版本 XXX,这就是触发 Apps 脚本的 API。这是我第三次在生产中遇到被 Google 更新破坏的脚本。在某些时候,我们需要能够知道,当我们向世界推出某些东西时,它会继续发挥作用。用户不会区分我们的错误和 API 中的错误,这意味着我们会从这些问题中获得热量。

0 投票
5 回答
33317 浏览

google-apps-script - 检测用户在谷歌电子表格中插入行或列并在脚本中做出反应

在 Google Apps 脚本中,基本工具之一是电子表格中的 onEdit 触发器,它使我们能够检测用户何时编辑单元格并对其做出反应。

当用户插入一行或一列时怎么样?有没有办法检测到?

这会触发 onEdit 吗?如果是这样,我想在 ScriptDb 中维护行数或列数的计数,然后每次检查都可以,但是会非常耗时,因为 getMaxRows() 已经很慢了,并且与 ScriptDb 联系是好。

你怎么看 ?

0 投票
1 回答
977 浏览

google-apps-script - 分发 Google Apps 脚本并推送更新

在我们的组织中,我们使用 Google 电子表格作为内部应用程序的数据输入。我创建了一个 Google Apps 脚本来促进修改电子表格的过程。

如您所见,此脚本依赖于电子表格格式,并提供仅适用于我们组织的非常特定的用途。

我的问题是如何自动将任何更改推送到正在使用它的所有电子表格实例?

我可以将脚本添加到脚本库,但我认为它不适合这些类型的脚本,而且如果对主副本的任何更改将被推送给客户端,我也找不到信息。

我看到的另一个选项是创建一个包含脚本的电子表格模板,但同样,更改会被推送吗?

0 投票
1 回答
1029 浏览

google-apps-script - 是否可以将 Google Apps Script Web App 发布到 G Suite Marketplace?

我知道可以将 Google Script Web App 发布到 Chrome 网上应用店,但是可以在 Google Suite Marketplace 中发布吗?

GAS 编辑器中没有“发布到市场”选项,但我查看了 Chrome Web Store 中基于 Google 脚本的应用程序清单文件,我认为有可能做到这一点。

不幸的是,我在发布的最后一步(填写 Google G Suite Marketplace 列表审核请求)时遇到了一些问题,因此我不确定基于 Google Script 的应用程序是否符合 G Suite Marketplace 要求

事实上,来自 Chrome 网上应用店的 GAS 清单文件如下所示:

所以你怎么看?

0 投票
3 回答
2922 浏览

google-apps-script - 通过 Google Apps 脚本部署和使用 Google 表格插件

我正在使用 Google Apps Script 开发 Google Sheets 插件,我想知道如何部署它并将其安装到 Google Sheets 电子表格中,同时它仍在开发中(即尚未准备好在商店中发布)。

目前,我被迫在现有电子表格中创建嵌入的附加组件,而无法在另一个电子表格中使用它。

有没有人做到这一点?

0 投票
2 回答
886 浏览

google-apps-script - 向有限的用户大规模部署由 Google Apps 脚本驱动的电子表格

我们有 100 多个用户,我们为他们一一创建了一个谷歌电子表格,并要求他们在电子表格中输入原始数据。

当前的工作流程是我们有一个程序可以将电子表格一张一张地导出到 CSV 文件中,然后将它们导入我们的后端系统。没关系。

现在,我们了解到 Google Apps 脚本可能是一个更好的解决方案,例如用户可以通过“插件 -> 获取插件”在电子表格中发现插件,因此我们可以创建多个功能并完全自动化通过调用我们的 API 进行导入过程,例如验证、试运行、导入等。

问题:

  • 我们将不断更新应用程序脚本中的功能,因此我们不想每次都更新所有这 100 多张文档。
  • 我们不希望所有公共用户都可以安装在插件中,只有我们的客户(他们有 Google auth)

  • 如果我们可以保护用户不查看/修改我们的脚本会更好

他们有可能吗?

目前我认为最好的方法是创建一个新的库项目并将大部分代码放入其中,并创建一个使用该库的容器绑定应用程序脚本。有更好的办法吗?

0 投票
0 回答
470 浏览

google-apps-script - Google Add-on 在受限模式应用脚本中添加菜单项

我们在新的 google app scripts add on store 中发布了一个插件,但是在安装它的初始电子表格之外的任何电子表格中使用该插件时,权限似乎都无法正常工作。

我看到一个问题,当创建新电子表格并且用户从“管理加载项”菜单中选择“使用此加载项”时,我们的菜单项不会被填充。目前,我们一直在告诉人们删除加载项并重新安装以强制权限流获得完整权限。

我查看了https://developers.google.com/apps-script/add-ons/lifecycle#opening上的权限生命周期指南,看来我们的 onOpen 函数应该能够在 LIMITED 权限模式下添加菜单项:

有谁知道我们做错了什么?

0 投票
1 回答
303 浏览

google-apps-script - 在所有电子表格中使用脚本

我正在从 excel 完全切换到 google 电子表格。我正在编写一组简单的脚本来帮助我提高工作效率。有什么办法可以让我从我的谷歌帐户打开(新的+现有的)所有谷歌电子表格继承这些脚本?我知道我可以发布一个加载项,但缺少这个......

换句话说,当我打开一个新的谷歌电子表格时,我希望我的自定义菜单和功能自动可用。

谢谢!

0 投票
1 回答
359 浏览

google-apps-script - Google 表单插件中的对话框

我正在尝试显示DialogBoxGoogle 表单插件中使用的函数。

与 不同的是FormApp.getUi().showModalDialog(content, title),函数 usingDialogBox被调用但什么都不做(什么都不显示)。是否有人成功在 Google 插件中显示此类组件?

使用的目标DialogBox是能够设置一个关闭处理程序,这是不可能的.showModalDialog(...)(它返回void但不引用创建的对话框)。

我在插件中的 Google API for UI 中看不到任何其他方式来显示对话框,并在关闭时进行回调。

0 投票
1 回答
1572 浏览

google-apps-script - 从代码重新加载插件

我有一个谷歌应用程序脚本插件,它加载在谷歌电子表格的侧栏中。

如何重新加载用户切换工作表或单击按钮的应用程序脚本插件?