我有一张包含多张纸的电子表格 . 我将此电子表格与多个用户共享,我需要保护工作表,以便某些用户只能查看和编辑此电子表格的一张表 . 如下:
-
用户1(一个位置管理员)需要查看和编辑工作表1(该位置的工资单)
-
用户2(另一个位置管理员)需要查看和编辑工作表2(该位置的工资单),但不是工作表1
-
用户3(区经理)需要查看和编辑工作表1和工作表2,但不需要查看和编辑工作表3和4 .
-
用户4(区域经理)需要能够查看和编辑表1,2,3和4 .
Google表格仅提供防止编辑的保护,但我想知道是否有任何第三方应用,脚本或变通方法允许此功能的防止查看?
3 回答
简答题=否 . 如果您无法通过API或脚本找到此方法,则第三方无法提供此方法(他们可以访问我们所使用的相同API) .
稍微长一点的解决方案:您可以创建一个包含所有这些数据的主电子表格,然后有4个其他电子表格(每个用户一个),将数据从正确的表格提取到他们的个人电子表格中 .
对于稍微长一点的解决方案,您正在查看该特定用户电子表格中的'onOpen' trigger,因此当他们打开电子表格时,它会将正确的工作表从主电子表格复制到电子表格中(以复制另一个电子表格表单)到目前的电子表格)是你的朋友 .
一个非常非常简单的版本可能是:
否则,如果您有权访问Google电子表格,则可以随时查看其中的所有表格 .
想法
将标签拆分为单独的表格 . 创建一个文件夹并将所有文档放入其中 . 仅与需要它的所有者共享每个工作表,然后与区域经理共享该文件夹 .
奖金
尝试importrange命令 .
你可以这样做:= IMPORTRANGE(A1,A2)
A1 =工作表网址
A2 = Tab!范围即Store1!A1:Q500
使用它来创建一个主表单,从所有单个存储中提取数据,这可以为区域管理器提供简单的快照 . 您甚至可以镜像原始选项卡结构 .
Comment on Separate Workbook architecture and ImportRange
我会提醒您不要将应用程序拆分为单独的工作簿 . 使用ImportRange()要求您将共享权限设置为“任何有链接的人”而不是更安全的“仅特定用户” .
由于存在此安全问题,我只是将费用授权应用程序从单独的(六个)工作簿重新构建为单个主工作簿 .
Alternatives: Content Service
在我的应用程序中,我使用Content Service进行只有数据库所有者才能执行的编辑操作 . 授权用户只能编辑特定工作表中的特定范围 . 然后,为了实现魔力,他们使用作为数据库所有者运行的内容服务来执行宏 .
Controlling Viewing
可以想象,您可以对工作簿进行编程,以隐藏取决于用户身份的工作表 . 这需要他们自己进行身份验证(例如,你不能在onOpen()中执行此操作 . 问题是当协作者同时查看工作簿时 . 看看Sheets如何处理同一文档的并发视图会很有趣 . 了解Google ,我打赌它会奏效 .