gpt4 book ai didi

google-apps-script - 如何保持两个谷歌电子表格之间的引用完整性?

转载 作者:行者123 更新时间:2023-12-02 07:40:09 24 4
gpt4 key购买 nike

假设我有三个电子表格。其中一个有员工列表及其联系信息,我们将此电子表格称为 A。另一个有员工列表及其最喜欢的颜色(电子表格 B),第三个有员工列表及其生日、宠物名和姓氏。审核日期(电子表格 B)。

当我们向电子表格 A 添加员工时,电子表格 B 和 C 中应该有一个新行,其中包含该员工的姓名,但该行的其余部分应该为空。

当我们在电子表格 A 上更新员工姓名(有人结婚了!)时,该更改应该传播到电子表格 B 和 C。(请注意,使用导入范围函数可以很容易地做到这一点: https://support.google.com/drive/answer/3093340 )

当我们从电子表格 A 中删除员工时,我们希望删除电子表格 B 和 C 中的整行(或者只是将员工的姓名替换为“已删除”等明显的内容)。

不需要双向同步(如果有人更新电子表格 B 或 C,电子表格 A 可以保持不变,如果他们更新 B 或 C 上的员工姓名,则不需要传播回来)。

我在谷歌和堆栈溢出上四处查看。可能有一组自定义谷歌应用程序脚本提供此功能,但我还没有找到。这本书和它所基于的博客讨论了使用 mysql 作为 google 电子表格的后端:https://leanpub.com/googlespreadsheetprogramming但我认为这并不是我想要的。

我考虑过的选项:

  • 将它们汇总到一个电子表格中 - 这不适用于我正在解决的实际问题
  • 使用导入范围。这解决了更新功能,但没有解决插入/删除问题
  • 使用 importrange 将名称导入到电子表格 B 和 C 的不同工作表中,然后使用数据验证来强制名称列中的名称正确。这可能适用于更新/删除情况,但会使设置新电子表格 (D) 变得非常繁琐,而且也很难区分名字和姓氏。
  • Google 融合表 - 它们有一些限制,阻止我们大规模转向它们

最佳答案

我以前不止一次以不同的方式这样做过。首先,我建议最简单的一个:如果更新 A B 和 C 的角色都有权查看所有数据,您可以将所有信息保存在一个主电子表格中,并有一个生成 B 和 C 的脚本(例如每小时,或者实时与 onChange)。这样,您仍然可以像已有的那样拥有读者角色。缺点:写角色可以访问所有内容。

第二,这个确实满足了您的所有要求。 A 中的 onChange 检测已更改的行,并且仅更新/删除 B、C 中的行。这里的完整性稍微困难一些,因为可以一次插入/删除许多行,而且如果 onChange 失败(我们知道脚本 api 调用有时会失败),完整性就会破坏。最简单的解决方法是每隔几个小时调用第一个脚本(强制同步所有行),使其“最终一致”。

这假设行仅在 A 上删除/插入。

关于google-apps-script - 如何保持两个谷歌电子表格之间的引用完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23070242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com