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

2024-04-07

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

要求:

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

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

1,2是我遇到的问题。

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

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

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

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

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

但第二个问题是燃烧的问题, 可以解决这个问题以满足要求吗?

如果 Google Apps 脚本无法满足要求,我必须寻求替代方案。

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

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

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

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

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


“大型代码库”的定义是主观的,但即使是具有数百行代码的项目也可以从组织中受益。在 IDE 中,您有两个主要工具可用于帮助组织代码:文件和图书馆 https://developers.google.com/apps-script/guide_libraries.

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

代码组织和库

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

图书馆 https://developers.google.com/apps-script/guide_libraries是为了让其他项目能够合并其功能而无需复制实际代码而发布的项目。看看著名的脚本库 https://developers.google.com/apps-script/notable-script-libraries作为一个开始。库从库名称中获取名称空间 - 例如,我有一个与 CSV 文件的输入和输出相关的实用程序库,我(巧妙地)将其命名为 CSVUtils。该库中的方法的访问方式为CSVUtils.example(),并受自动完成功能的支持。库支持 jsdoc 的有限子集,并且在发布时提供指向生成的文档的链接。

在多个 *.gs 文件中组织电子表格代码 - 甚至可能吗? https://stackoverflow.com/questions/11725675/organizing-spreadsheet-code-in-several-gs-files-even-possible

是否可以为多个电子表格使用一个脚本? https://stackoverflow.com/questions/10500764/is-it-possible-to-have-one-script-for-multiple-spreadsheets

如何或在何处定义在多个电子表格中使用的函数? https://stackoverflow.com/questions/13082260/how-or-where-do-i-define-a-function-for-use-in-more-than-one-spreadsheet

google-apps-script 在一个电子表格中有多个脚本 https://stackoverflow.com/questions/10964932/google-apps-script-have-multiple-scripts-in-one-spreadsheet

在 Google Apps 脚本库中创建类似命名空间的组织 https://stackoverflow.com/questions/10890177/creating-a-namespace-like-organization-in-a-google-apps-script-library

发布 Google Apps 脚本库 https://stackoverflow.com/questions/10860533/publishing-a-google-apps-script-library

GAS 中库的设计模式? https://stackoverflow.com/questions/13575942/design-patterns-for-libraries-in-gas

WebApp 访问库中的 ScriptDb https://stackoverflow.com/questions/13113564/scriptdb-in-library-accessed-by-webapp

项目和多个 doGet() 脚本文件发布为 Web 应用程序 - 需要澄清 https://stackoverflow.com/questions/12268539/project-and-multiple-doget-script-files-published-as-web-apps-need-clarific

... 关于 Apps 脚本库的每个 SO 问题 https://stackoverflow.com/search?q=%5Bgoogle-apps-script%5D%20library.

使用外部 JavaScript 库:

从通读开始了解 Caja 消毒 https://developers.google.com/apps-script/html_service#Caja,特别是有关外部 JavaScript 库的部分。

Google Apps 脚本:如何在 HtmlService 中使用 js 库 https://stackoverflow.com/questions/13679377/google-apps-script-how-can-use-js-library-in-htmlservice

授权和所有权

授权 -Google Apps 脚本在首次运行时授予用户访问电子表格上的服务的权限,而无需打开脚本编辑器 https://stackoverflow.com/questions/13046705/google-apps-script-grant-user-permissions-access-services-on-spreadsheet-in-ther

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

Google 何时需要重新验证? https://stackoverflow.com/questions/12354602/when-does-google-require-re-authentication

Google Apps 脚本库中的 OAuth https://stackoverflow.com/questions/11905481/oauth-in-google-apps-scripts-libraries

代码透明度

WebApps 使用的库的源代码对每个人都可见? https://stackoverflow.com/questions/13741173/source-code-of-libraries-used-by-webapps-visible-to-everybody

如何以Google方式隐藏库源代码? https://stackoverflow.com/questions/11915118/how-to-hide-library-source-code-in-google-way

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在任何/所有电子表格上使用 Google Apps 脚本? 的相关文章

  • 如何读取 Google 表格中单元格的颜色

    我正在使用 Python Google Sheets API 并且我想读取单个单元格的颜色 我已阅读文档 但我只能找到有关如何从单元格检索文本的信息 而不是颜色格式的信息 您可以使用方法 电子表格 get https developers
  • 如何检查 Gmail 标签是否有嵌套子标签?

    使用Google Apps脚本 是否有一个功能可以检查Gmail标签是否有嵌套子标签 如果标签有一个或多个子标签 我想将它们从代码序列中排除 没有直接的方法可以从 父 标签获取标签 但是使用简单的方法来获取标签非常简单getUserLabe
  • 从 Gmail 获取 pdf 附件作为文本

    我在网络和 Stack Overflow 上搜索但没有找到解决方案 我尝试做的事情如下 我通过邮件收到某些附件 我希望将其作为 纯 文本进行进一步处理 我的脚本如下所示 function MyFunction var threads Gma
  • 将数据从 Google Drive 中的 CSV 文件导入到 Google Sheet

    我使用 SAS 每 24 小时生成两个 CSV 文件 我使用 bat 脚本将生成的 CSV 文件保存在 Google Drive 的文件夹中 CSV 文件被替换 因此文件夹中始终只有这两个文件 CSV 文件以 分隔 并且仅包含三列或四列 我
  • 使用python服务帐户管理gmail签名

    我想编辑 Google Apps 域中的用户签名 我计划使用服务帐户 服务帐户被委托给整个域 我使用 gmail API 来发送和检索电子邮件 但使用不同的 api 修改签名 根据https developers google com ad
  • 如何使用应用程序脚本在 Google 电子表格中移动工作表 [重复]

    这个问题在这里已经有答案了 我想使用应用程序脚本在电子表格中移动工作表 怎么做 最好的直播 你看过吗文档 https developers google com apps script reference spreadsheet sprea
  • 无法实施第三方 Google 日历会议插件

    我正在研究 Google 日历会议插件的实施并发现了一些问题 我按照文档执行示例代码 但它没有按预期工作 从我的角度来看 我的清单文件是完整的 但是当我尝试从 从清单部署 链接发布日历会议插件时 它会打开我的谷歌日历 但它不会显示我的会议
  • 图像未显示在从 HTML 创建的 PDF 上

    我想动态创建 PDF 这意味着我将从 Google Drive 获取文件 然后将它们放入 HTML 代码中 并尝试从中创建 PDF 一切工作正常 除了图像没有显示 我现在正在做的是 从 HTML 字符串创建 HtmlOutput 获取该 H
  • 如何使用 OnChange() 触发器

    我有一个电子表格以及该电子表格的主副本 每次用户将数据输入单元格时 它都会获取新数据并放入主副本中 然而最近 我注意到一个用户创建了一个新列 该列未被 OnEdit 捕获 于是我查了一下 看到了去年实现的OnChange 但是 我不知道如何
  • 当达到最小起订量时,如何重置 Google 表格中的运行总计?

    请提供数组公式 当达到最小起订量时 您可以帮助重置运行总计吗 这里最小起订量 15 当运行总计等于或大于 15 时 应重新启动 Date Value Desired 12 2022 6 6 01 2023 5 11 02 2023 4 15
  • 如何在多个工作表上运行脚本,Google Sheets

    我有一个脚本 想在 Google 工作表中的特定选项卡上运行 但不一定在所有选项卡上运行 我尝试执行两个不同名称的脚本 但只有最后一个保存的脚本会运行 如何编写此脚本以在特定选项卡上运行 这是我的开始脚本 function onEdit v
  • 谷歌表格根据今天的日期隐藏行

    在 Google Sheets 中 当 A 列中的日期等于或早于今天的日期时 我需要一个脚本来自动隐藏工作表 1 中的行 因此 如果今天是 2018 年 8 月 29 日 单元格 A3 中的日期是 2018 年 8 月 28 日 则第 3
  • Drive.Permissions.insert(值)-Drive API,您可以在“值”下使用数组吗?

    是否可以在此处使用 值 下的数组来阻止我创建组别名电子邮件地址 例如 userValues email protected cdn cgi l email protection email protected cdn cgi l email
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 如何使用 Google Apps Docs 脚本将光标移动到文档的开头?

    我正在用我的 Google 文档编写 Google Apps 脚本的脚本 并想知道如何将光标移动到文档的开头 我最后想做的只是用一些字符串替换第一行 这个很简单 你可以使用setCursor method 记录在这里 https devel
  • 当 Google 任务标记为“已完成”时如何触发 Google 脚本

    Google Apps 脚本允许由各种事件触发脚本 看here https developers google com apps script guides triggers 当用户将任务标记为已完成 在 Google 任务中 时 我想更新
  • 如何在 Google 文档之间复制内容和格式?

    我需要复制 Google 文档的内容 并将其附加到另一个文档 如果我使用这样的东西 newDoc getBody appendParagraph template getText 我得到了文本 但丢失了原始文件中的格式 Bold Itali
  • 在 Google 表格脚本中设置活动单元格的值

    我想创建一个公式 在某个单元格更改上创建时间戳 下面的代码就可以了 我现在想做的是将公式转换为纯文本 将该时间戳锚定到工作表上 如果您手动执行此操作 您将选择时间戳 复制它们并将它们粘贴为值 我不想手动执行此操作 因此我创建了下面的脚本 它
  • 如何在谷歌电子表格中获取台湾证券交易所指数

    如何在谷歌电子表格中获取台湾证券交易所指数 该索引确实存在于谷歌金融中https www google com finance q TPE 3ATAIEX https www google com finance q TPE 3ATAIEX
  • Google 电子表格中带有 len 的 Countif

    我有一个像这样的 XXX 列 XXX A Aruin Avolyn B Batracia Buna 我想仅当单元格中的字符串长度 gt 1 时才对单元格进行计数 怎么做 我想 COUNTIF XXX1 XXX30 LEN gt 1 但我应该

随机推荐

  • golang中没有这样的文件或目录错误

    我想在我的 golang 控制器之一中指定一个 html 模板 我的目录结构是这样的 Project com src controller contoller go view html first html 我想为请求 new 加载firs
  • 将 HAML 模板与 Backbone.js 结合使用的最佳策略

    我进入 Backbone js 来为我的项目构建 javascript 代码 我喜欢 HAML 在后端 rails 上进行模板化 所以我想将它用于 Backbone 视图模板化 我知道 Javascript 有几个 HAML 端口 例如ht
  • OpenEJB 本地客户端注入失败

    请注意 我正在镜像很接近 事实上 我的情况有点简单 因为我此时甚至没有使用持久性单元进行测试 我的测试项目提供了一个简单的MDB和一个会话bean MDB 和会话 bean 都正常加载 并且无需注入即可成功测试 以受限方式 建议注射 Loc
  • 如何在我的邮件服务器中创建(或注册)新的 pop3 电子邮件帐户

    我正在创建一个 Android 应用程序 该应用程序将具有 API 来创建新的 pop3 电子邮件帐户 我正在使用 roundcube 网络邮件客户端创建新的电子邮件帐户 手动 但我需要以编程方式创建新帐户 我在网上搜索过 但我没有收到任何
  • 手动创建的多个数据源的事务管理

    我正在开发一个应用程序 其中我必须根据从客户端传递的客户 ID 连接到不同的数据库 所有数据库的架构都是相同的 它是一种多租户应用程序 由于我不知道会有多少客户 因此我无法使用 xml 配置静态创建数据源 因此我必须手动创建数据源 我们使用
  • 如何将 noreturn 与函数指针一起使用?

    我正在用 C11 编写引导加载程序 当引导加载程序需要将控制权转移给固件时 它会读取预定义内存地址处的函数指针并调用它 代码如下所示 typedef void FirmwareBootFn void typedef struct uint3
  • 渴望加载不同的嵌套多态

    使用 Rails 3 2 我的模型是这样嵌套的 审核 gt 可审核 国家或商店 国家 gt CountryDay gt 商店 gt 照片 商店 gt 照片 我有以下内容 reviews user reviews includes user
  • 为什么堆上的内存分配比堆栈上的内存分配慢得多?

    我已经被告知很多次了 但我不知道为什么 从堆分配内存时会涉及哪些额外成本 与硬件有关吗 与CPU周期有关吗 这么多的猜测 但没有确切的答案 有人能给我一些详细说明吗 正如 unwind 所说 Heap数据结构比Stack更复杂 在我看来 当
  • 在 Azure 移动服务控制器中添加相关数据库条目

    在我的 Azure 移动服务中 我有一个控制器类UserController TableController
  • 有没有一种方法可以用 AngularJS 进行 ng-repeat 覆盖多个数组?

    我有以下循环遍历 xa 并打印 qs a text 值 div div div div div div div div 有没有一种方法可以将这些结合起来 如下所示 div div div div div div 请注意 xa 和 xb 是始
  • 代码镜像。禁用垂直滚动条

    我目前正在使用 CodeMirror 在浏览器的文本区域中编辑代码 如果我有超过 20 行代码 它会在右侧添加一个垂直滚动条 但我不需要这个滚动条 相反 我需要编辑器大小垂直增长 有人可以帮忙吗 在 CodeMirror 3 中 有一个选项
  • 带复选框的嵌套对象 - 即使使用 Accept_nested_attributes_for 也可以进行批量分配?

    我认为应该有一个简单的解决方案来解决这个问题 因为 Rails 2 3 具有这种新奇的嵌套表单功能 基本上我想创建或更新用户并同时为他们分配角色 似乎我做的一切都是正确的 但我收到了错误警告 无法批量分配这些受保护的属性 roles atr
  • 椭圆曲线上的点数

    如果您有以下形式的椭圆曲线 y 2 x 3 a x b mod p 有没有一个好的程序来计算这条曲线上的点数 我已经阅读过有关 Schoof 和 Schoof Elkies Atkin SEA 算法的信息 但我正在寻找开源实现 有谁知道一个
  • “工具提示”不能有逻辑或视觉父级

    我有以下问题 当我尝试为切换按钮设置工具提示样式时 我不断收到 工具提示 不能有逻辑或视觉父错误 什么地方出了错 当我取出 ToggleButton ToolTip 下的工具提示控件时 它可以工作
  • 如何在 Windows 上将 Ruby 添加到 PATH 变量?

    我已经安装了 Ruby 但仍然需要将其添加到 PATH 变量中 我在网上找到了一些关于如何使用命令行手动添加它的信息 set PATH C Ruby200 x64 bin PATH 但在尝试之前 我想确保它不会覆盖 PATH 变量中当前的内
  • 打印后出现奇怪的分段错误

    写了一个简单的交换程序 效果很好 但给出了一个分段故障打印完所有内容后 include
  • WIX 3.9 及更高版本的自定义操作 RegisterComPlus 发生错误

    在 Microsoft 我们长期以来一直使用 WIX 工具集版本 3 5 2519 0 来为我们名为 System Center Service Manager 又名 SCSM 的产品构建安装程序和补丁 最近我们需要更新到 WIX Tool
  • 如何消除混淆矩阵中的白线?

    有谁知道为什么这些白线将我的混淆矩阵分成四部分 我已经更改了许多参数 但无法弄清楚 唯一让它们消失的是如果我根本不标记这些块 即 0 1 但这显然不是我想要的 任何帮助 将不胜感激 Code def plot confusion matri
  • 识别录制声音中的音符 - Python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以使用 Python 从录制的声音中提取一系列音符 这是我第一次考虑使用 Python 来完成此任务 帮助真的很棒 您想
  • 如何在任何/所有电子表格上使用 Google Apps 脚本?

    我正在尝试使用 Google Apps 脚本实现电子表格应用程序 但我有几个问题不符合我的要求 我研究了这些问题 但未能找到答案或更好的替代方法来实现此功能 要求 编写可管理 可测试的代码 不是将脚本下载到每个电子表格中 而是以某种方式在安