首页 文章

Google表格表格保护

提问于
浏览
0

我有一张包含多张纸的电子表格 . 我将此电子表格与多个用户共享,我需要保护工作表,以便某些用户只能查看和编辑此电子表格的一张表 . 如下:

  • 用户1(一个位置管理员)需要查看和编辑工作表1(该位置的工资单)

  • 用户2(另一个位置管理员)需要查看和编辑工作表2(该位置的工资单),但不是工作表1

  • 用户3(区经理)需要查看和编辑工作表1和工作表2,但不需要查看和编辑工作表3和4 .

  • 用户4(区域经理)需要能够查看和编辑表1,2,3和4 .

Google表格仅提供防止编辑的保护,但我想知道是否有任何第三方应用,脚本或变通方法允许此功能的防止查看?

3 回答

  • 1

    简答题=否 . 如果您无法通过API或脚本找到此方法,则第三方无法提供此方法(他们可以访问我们所使用的相同API) .

    稍微长一点的解决方案:您可以创建一个包含所有这些数据的主电子表格,然后有4个其他电子表格(每个用户一个),将数据从正确的表格提取到他们的个人电子表格中 .

    对于稍微长一点的解决方案,您正在查看该特定用户电子表格中的'onOpen' trigger,因此当他们打开电子表格时,它会将正确的工作表从主电子表格复制到电子表格中(以复制另一个电子表格表单)到目前的电子表格)是你的朋友 .

    一个非常非常简单的版本可能是:

    var ss = SpreadsheetApp.openById("ID-FOR-MASTER-SHEET");
    var sheet = ss.getSheets()
    var destination = SpreadsheetApp.openById("ID-FOR-USERS-SHEET");
    sheet[0].copyTo(destination);
    

    否则,如果您有权访问Google电子表格,则可以随时查看其中的所有表格 .

  • 0

    想法

    将标签拆分为单独的表格 . 创建一个文件夹并将所有文档放入其中 . 仅与需要它的所有者共享每个工作表,然后与区域经理共享该文件夹 .

    奖金

    尝试importrange命令 .

    你可以这样做:= IMPORTRANGE(A1,A2)

    • A1 =工作表网址

    • A2 = Tab!范围即Store1!A1:Q500

    使用它来创建一个主表单,从所有单个存储中提取数据,这可以为区域管理器提供简单的快照 . 您甚至可以镜像原始选项卡结构 .

  • 1

    Comment on Separate Workbook architecture and ImportRange

    我会提醒您不要将应用程序拆分为单独的工作簿 . 使用ImportRange()要求您将共享权限设置为“任何有链接的人”而不是更安全的“仅特定用户” .

    由于存在此安全问题,我只是将费用授权应用程序从单独的(六个)工作簿重新构建为单个主工作簿 .

    Alternatives: Content Service

    在我的应用程序中,我使用Content Service进行只有数据库所有者才能执行的编辑操作 . 授权用户只能编辑特定工作表中的特定范围 . 然后,为了实现魔力,他们使用作为数据库所有者运行的内容服务来执行宏 .

    Controlling Viewing

    可以想象,您可以对工作簿进行编程,以隐藏取决于用户身份的工作表 . 这需要他们自己进行身份验证(例如,你不能在onOpen()中执行此操作 . 问题是当协作者同时查看工作簿时 . 看看Sheets如何处理同一文档的并发视图会很有趣 . 了解Google ,我打赌它会奏效 .

相关问题