【问题标题】:How to use Google Apps Script on any/all Spreadsheets?如何在任何/所有电子表格上使用 Google Apps 脚本?
【发布时间】:2013-05-02 20:33:19
【问题描述】:

我正在尝试使用 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 并对电子表格进行必要操作所需的身份验证。

哪些选项是首选,或者有什么更好的解决方案可以满足我上面所说的要求?

【问题讨论】:

  • 这个问题不是很清楚,最好贴为多个问题。你的“要求”是什么?您指的“问题5”是什么? #3 听起来像是抱怨,而不是问题——它是有效的,但与这里的问题无关。请...帮助我们帮助您,让您的问题更清楚。
  • @Mogsdad 希望我已经改进了这个问题。
  • 更好,问题 1 仍然不具体。您不再指“问题 5”,而是“问题 3”,这不在您的问题中。

标签: google-apps-script google-sheets google-apps


【解决方案1】:

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

此答案主要是指向其他答案的链接的集合,在一些主题领域内应该解决您表达的担忧。

代码组织和库

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

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

Organizing Spreadsheet Code in several *.gs files - even possible?

Is it possible to have one script for multiple spreadsheets?

How, or where, do I define a function for use in more than one spreadsheet?

google-apps-script have multiple scripts in one spreadsheet

Creating a namespace-like organization in a google apps script library

Publishing a Google Apps Script Library

Design patterns for libraries in GAS?

ScriptDb in Library accessed by WebApp

Project and multiple doGet() script files published as web apps -- Need clarification

...every SO question about Apps Script Libraries.

使用外部 JavaScript 库:

首先阅读Understanding Caja Sanitization,尤其是关于外部 JavaScript 库的部分。

Google Apps Script: How can use js library in HtmlService

授权和所有权

授权 - Google apps script grant user permissions access services on spreadsheet in ther first run without open script editor

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

When does Google require re-authentication?

OAuth in Google Apps Scripts Libraries

代码透明度

Source-code of Libraries used by WebApps visible to everybody?

How to hide library source code in Google way?

【讨论】:

  • 感谢您分享如此全面的答案。在 GAS 中编写脚本时,我处于浅水区。几乎我所有的脚本都是容器绑定的。我希望学习如何编写独立的脚本和库。这个答案真的会有所帮助。太棒了!!!
猜你喜欢
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多