3

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

要求:

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

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

1,2是我面临的问题。

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

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

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

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

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

但是第2个问题是燃烧的问题,这是否可以满足要求?

如果无法通过 Google Apps 脚本实现要求,我必须另寻他法。

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

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

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

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

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

4

1 回答 1

6

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

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

代码组织和库

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

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

编辑器屏幕截图

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

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

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

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

在 Google Apps 脚本库中创建类似命名空间的组织

发布 Google Apps 脚本库

GAS 中库的设计模式?

WebApp 访问的库中的 ScriptDb

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

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

使用外部 JavaScript 库:

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

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

授权和所有权

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

https://stackoverflow.com/questions/15096379/google-app-scripts-how-to-let-shared-users-run-scripts-as-themselves

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

Google Apps 脚本库中的 OAuth

代码透明度

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

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

于 2013-05-03T14:35:17.797 回答