【发布时间】:2014-04-14 20:56:23
【问题描述】:
假设我有三个电子表格。一个有员工列表及其联系信息,我们称之为电子表格 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 融合表——它们有一些限制,使我们无法批量迁移到它们
【问题讨论】:
-
有趣的问题。将电子表格合并为一张大型主电子表格中的每个表格会有什么问题?
-
@br1ckb0t 组织的不同部门负责不同的电子表格,并且可能包含敏感数据。即使我可以将它们合并到一个包含不同工作表的电子表格中,那将如何解决插入或删除场景?
-
既然您可以清楚地表达您的问题,您可能会尝试编写脚本?我知道,这不是很有帮助,但这可能是最简单的答案......
-
@Rom1 我试图避免编写自定义代码,但这可能是必需的。
-
Fusion SQL 与 JET/T-SQL 相比是有限的,但这取决于你的关系结构有多复杂。即兴发挥,我想说你不能通过合并嵌套比 1 层更深(如果你的连接可以用 WHERE 子句模拟,则为 2 层)。但是 Fusion 表确实支持计算列,如果需要,您可以在工作表中操作更复杂的结构,然后上传到临时 Fusion 表以供参考。 Fusion API 现在确实比 Visualization HTTP 方法更快地执行请求。
标签: google-apps-script google-sheets