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

  • 用户1(一位位置经理)需要查看和修改工作表1(该位置的工资单)

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

  • 用户3(区域管理员)需要查看和编辑工作表1和工作表2,但不能查看和编辑工作表3和4。

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

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

#1楼 票数:1

简短答案=否。如果您无法通过API或脚本找到此方法,则第三方将无法提供此方法(他们可以访问与我们相同的API)。

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

对于稍长的解决方案,您正在查看特定用户电子表格中的“ onOpen”触发器 ,因此当他们打开电子表格时,它将正确的工作表从主电子表格复制到他们刚刚打开的电子表格中。 openByID ”(允许您获取另一个电子表格)和“ copyTo ”(将另一个电子表格复制到当前电子表格)等方法是您的朋友。

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

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 Spreadsheet,则始终可以查看其中的所有工作表。

#2楼 票数:1

理念

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

奖金

尝试importrange命令。

您可以执行以下操作:= IMPORTRANGE(A1,A2)

  • A1 =工作表网址
  • A2 = Tab!Range,即Store1!A1:Q500

使用它可以创建一个主表,该表从所有单个存储中提取数据,从而可以为区域管理器提供简单的快照。 您甚至可以镜像原始的标签结构。

#3楼 票数:0

评论单独的工作簿体系结构和ImportRange

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

由于这个安全问题,我只是将费用授权应用程序从单独的(六个)工作簿重新架构为一个主工作簿。

替代方案:内容服务

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

控制观看

可以想象,您可以对工作簿进行编程,以根据用户的身份隐藏工作表。 这要求他们自己进行身份验证(例如,您不能在onOpen()上进行身份验证。问题是当您让协作者同时查看工作簿时。看看工作表如何处理同一文档的并发视图会很有趣。 ,我敢打赌它会起作用。

  ask by durbintl translate from so

未解决问题?本站智能推荐:

1回复

有什么方法可以将 google 脚本代码打包为 google sheet 的附加组件?

有没有办法将谷歌脚本代码打包为谷歌工作表的附加组件或锁定代码,以便除了指定的用户或所有者之外没有人可以查看或编辑脚本代码? 如果打包为附加组件是唯一的选择,它是否会在市场上的某个地方发布附加组件? 我不希望打包的附加组件公开可用。 请指教?
1回复

为我的Google文档插件获取域安装

我们有一个Google-docs加载项(基于Google Apps脚本构建),为此我们启用了Google Apps Marketplace SDK-以便Google Apps管理员可以在域级别安装我们的加载项。 我们注意到,现在已经有几个域安装了我们的附件-但是我似乎找不到找到有关哪些域已
1回复

使用Google API调用将文件上传到Google云端硬盘

我在市场上创建了一个Google应用,该应用可帮助使用gmail登录用户。 这样,我增加了访问驱动器文件的范围。 https://www.googleapis.com/auth/drive 这用于访问允许用户的驱动器文件。 我有访问令牌,刷新令牌和所有该用户。 现在,我需要从我
1回复

在将此应用推向生产之前,Google 云市场是否有任何 QA 沙箱环境

我将在 G Suite 市场上发布一个 Google 应用程序。 这可以通过任何公共组织/个人最终用户安装来安装。 在将此应用推向生产之前,Google 应用市场是否提供任何 QA 沙盒环境?
1回复

在Chrome商店中发布电子表格插件

我正在尝试按照应用脚本文档发布电子表格加载项,但出现此错误: 请修复以下错误: 在清单的api_console_project_id字段中指定ID的API控制台项目未启用Google Apps Marketplace SDK。 api_console_project_i
1回复

Google Sheet Add-on 未更新

我编写了一个 Google Apps 脚本并成功将其部署为 Google Sheets Add-on。 昨天,我发现了一个错误,我更新了脚本,并部署了一个新版本的插件。 无论我做什么,我仍然会在 Google 表格中看到旧版本的插件。 我尝试:1) 重新加载 Google Sheet 文件 2)
2回复

无法更改我的 Google 表格插件的版本

我已经对 Google Sheets Add-on 进行了一些错误修复,现在需要发布这些更改。 我通过文件 -> 管理版本在我的脚本中创建了一个新版本。 当我尝试在 G Suite Marketplace SDK 中更新我的插件时,我得到 错误 对不起,有问题。 如果您输入了信息,请检查
1回复

我们如何根据另一张工作表上的输入行将行组添加到Google表格中?

寻找有关Google表格的帮助。 我们希望有一个工作表可以根据另一工作表中的数据输入创建摘要信息。 假设我们有一个这样的人列表。 在同一文档的另一张纸上,我们希望这样输出。 随着原始数据表的增长,我们可能会吸引更多人。 输入将增长,如下所示: 发生这种情况时,我