如何在任何/所有电子表格上使用 Google Apps 脚本?

diy*_*da_ 3 google-apps google-sheets google-apps-script

我正在尝试使用 Google Apps 脚本实现电子表格应用程序。但是我有几个问题不符合我的要求。我已经调查了这些问题,但未能找到答案或更好的替代方法来实现此功能。

要求:

  1. 编写可管理的可测试代码

  2. 不是将脚本下载到每个电子表格,而是在安装时以某种方式下载,您可以在驱动器中的任何电子表格上使用它。

1,2 是我遇到的问题。

  1. Google Apps Script IDE 似乎难以处理大型代码库(我的意思是不要保留有关管理和处理代码增长的代码)

  2. 这是主要问题(不符合要求)

    假设我为电子表格创建了一个脚本,然后部署它,然后我可以将该脚本安装在我喜欢的任何其他脚本上,然后执行它。但这必须对每个电子表格进行。安装的脚本不在脚本管理器中,以便在所有电子表格中使用,而无需每次都从库中安装脚本。

还有当我直接在 Google Drive 上创建电子表格项目时。由于这未分配给特定的电子表格,因此不允许我从潜水(来自脚本管理器)中选择它并将此脚本加载到我希望的电子表格中,并运行/调试它。

我不希望对上述问题 1 有更好的解决方案。

但问题 2 是燃烧的问题,这是否可以解决以符合要求?

如果无法通过 Google Apps Script 实现该要求,则我必须寻求替代方案。

到目前为止我想到的替代方案:

  • 我想到了桌面应用程序,它可以提供电子表格 URL,然后提供身份验证信息,并通过使用电子表格 API 对桌面应用程序进行必要的操作。这是一种对用户不太友好的虚拟 est 方法。

  • 寻找一个 Google 应用程序,您可以在其中使用 G 邮件身份验证登录,然后在使用电子表格 API 提供电子表格 URL 后进行必要的操作。但我不确定 Google 应用程序的身份验证过程以及驱动器访问权限的可能性。

  • 最后是 Crome 应用程序,Crome 提供必要的身份验证以访问给定的电子表格 URL 并对电子表格进行必要的操作。

这些选项中的哪一个是首选,或者有什么更好的解决方案符合我上面提到的要求?

Mog*_*dad 6

“大型代码库”的定义是主观的,但即使是几百行代码的项目也可以从组织中受益。在 IDE 中,您有两个主要工具可用于帮助组织代码;文件和

此答案主要是指向其他答案的链接的集合,位于应解决您所表达的担忧的多个主题领域内。

代码组织和库

一个脚本项目可以有多个文件,类型为“gs”(脚本)或“html”。命名空间扩展到项目中的所有脚本文件。将方法分离到文件中是一种在项目中组织代码的简单方法(例如,将所有测试放在一个与生产代码分开的文件中),尽管它对跨项目的可重用性影响很小。

是为了让其他项目能够在不需要复制实际代码的情况下整合其功能而发布的项目。首先查看Notable Script Libraries。库从库名中获取它们的命名空间 - 例如,我有一个与 CSV 文件的输入和输出相关的实用程序库,我(巧妙地)将其命名为 CSVUtils。该库中的方法作为 访问CSVUtils.example(),并受自动完成功能的支持。库支持有限的 jsdoc 子集,并在发布时提供指向生成的文档的链接。

编辑器屏幕截图

在多个 *.gs 文件中组织电子表格代码 - 甚至可能吗?

是否可以为多个电子表格使用一个脚本?

如何或在哪里定义一个函数以在多个电子表格中使用?

google-apps-script 在一个电子表格中有多个脚本

在谷歌应用程序脚本库中创建类似命名空间的组织

发布 Google Apps 脚本库

GAS 中图书馆的设计模式?

WebApp 访问的库中的 ScriptDb

作为 Web 应用程序发布的项目和多个 doGet() 脚本文件——需要澄清

...关于 Apps 脚本库的每个 SO 问题

使用外部 JavaScript 库:

首先阅读了解 Caja Sanitization,尤其是有关外部 JavaScript 库的部分。

Google Apps Script:如何在 HtmlService 中使用 js 库

授权和所有权

授权 - Google 应用程序脚本授予用户权限,在首次运行时访问电子表格上的服务,而无需打开脚本编辑器

/sf/ask/1056746561/

Google 何时需要重新进行身份验证?

Google Apps 脚本库中的 OAuth

代码透明度

每个人都可以看到的 WebApps 使用的库的源代码?

如何以谷歌方式隐藏库源代码?


归档时间:

查看次数:

2810 次

最近记录:

9 年,5 月 前