【问题标题】:How to hide certain columns for a user?如何为用户隐藏某些列?
【发布时间】:2014-05-28 06:42:51
【问题描述】:

在共享的 Google 电子表格中:

我不希望我域中的特定用户查看包含敏感数据的列,但此人应该仍然能够编辑电子表格的其余部分。

我尝试创建一个“主”电子表格并使用 importrange 将数据导入“共享”工作表,但一旦我编辑了共享电子表格中的任何单元格,importrange 将不再工作,因为工作表已清空。

有没有一种快速的方法来做到这一点,也许使用脚本?

【问题讨论】:

  • 我认为您可以使用受保护的工作表。你在这里问过吗 - productforums.google.com/forum/#!categories/docs/spreadsheets ... Stackoverflow 与代码相关,所以你的问题不太合适。祝你好运。
  • 嘿,谢谢,我尝试在那里搜索,但没有成功。我会调查受保护的工作表。我在想是否有办法通过 API 做到这一点,比如测试用户的电子邮件地址,如 Session.getActiveUser().getEmail()
  • API 只是让您自动化,但您不希望自动化,您想控制访问。如果你想要什么是可能的,那么将有一种方法可以直接使用电子表格。

标签: google-apps-script google-sheets


【解决方案1】:

经过一些研究并尝试了各种不同的选项,我终于能够使用importrange 函数实现我想要的。

起初,我尝试使用隐藏列和保护范围的组合,但这不起作用,因为简单的复制和粘贴会显示隐藏列的内容。

解决方案:“主”电子表格没有任何敏感列数据,可以与组织中的每个人共享...然后我将敏感数据添加到新电子表格并使用 importrange从“主人”那里获取内容。 (以前我把角色颠倒了,但这没有用)


您可能希望为每个行条目添加唯一键,以便在压缩敏感数据和“主”数据时不会弄乱排序等操作。

【讨论】:

  • 如果您保护敏感数据的人只是更改了 importrange 函数怎么办?他们不能导入他们选择的任何列吗?
  • @jbright 是的,他们当然可以 - 但是带有 importrange 功能的“新电子表格”(在我的情况下)仅供我使用:)
  • @lee 嗨,李。我也有同样的需求。如果您能分享更多关于您如何通过唯一的行 ID 将敏感数据与“主”数据“压缩”的详细信息,您将非常友好。
  • 也许这会有所帮助,同样的解决方案但更详细infoinspired.com/google-docs/spreadsheet/…
【解决方案2】:

我来这里是为了寻找一种方法,只与客户共享电子表格的某些列,而不是全部。

如另一个答案中所述,使用=IMPORTRANGE 效果很好,但聪明的客户可以简单地编辑函数并查看其他列。

我的解决方案是首先创建一个“代理”电子表格,该电子表格仅导入我希望客户看到的列。此代理电子表格未共享。

然后,我创建了 另一个 电子表格,该电子表格从代理导入了列,并与客户共享了 那个 电子表格。这样,即使拥有编辑权限,他也无法看到代理电子表格中没有的任何内容。

确实有点笨拙,但它非常适合我的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多