0

我有一個包含多個工作表的電子表格。我有這個電子表格與多個用戶共享,我需要保護工作表,以便某些用戶只能查看和編輯一張電子表格。如下:Google表格保護

  • 用戶1(一個位置管理器)的需要來查看和編輯工作表1(即 位置的工資單)

  • 用戶2(另一種位置管理器)的需要來查看和編輯表2 (該位置的工資),而不是表1

  • 用戶3(區域經理)需要查看和編輯表1和表 2,而不是表3 & 4.

  • 用戶4(區域經理)需要能夠查看和編輯表1, 2,3和4

谷歌表只提供保護,防止編輯,但我想知道是否有任何第三方應用程序,腳本或解決方法,允許這種保護功能免受查看?

回答

1

簡答=否。如果您無法通過API或腳本找到此方法,則第三方將無法提供它(它們可以訪問我們所做的相同API)。

稍長的解決方案:您可以創建一個包含所有這些數據的主電子表格,然後有4個其他電子表格(每個用戶一個)將數據從正確的工作表中抽取到其個人電子表格中。

對於稍長的解決方案,您正在查看該特定用戶電子表格中的'onOpen' trigger,因此當他們打開電子表格時,它會將正確的工作表從主電子表格複製到他們剛打開的電子表格中。諸如'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); 

否則,如果你有機會到谷歌電子表格,您可以隨時查看中的所有表。

+0

稍長的解決方案聽起來像它可能是一個很好的解決方法。你碰巧有一篇關於如何拉斷?否則,我可以工作,我只是想知道如果有什麼我可以用來簡化這個過程 –

+1

我已經擴展了我的答案,希望能給你一個關於我的意思的總體概念,以及如何實現它。不幸的是,我不相信有一步一步的指導,我只是想這將是我將如何實施它。讓我知道如果任何事情不清楚。 – HDCerberus

+0

這是完美的!非常感謝你很多!這將爲我嘗試解決這個問題提供一個良好的開端。 –

1

想法

將標籤拆分爲單獨的工作表。創建一個文件夾並將所有文檔放入其中。只與需要它的所有者共享每張紙,然後與區域經理共享該文件夾。

Bonus

嘗試importrange命令。

你可以這樣做:= IMPORTRANGE(A1,A2)

  • A1 =表URL
  • A2 =標籤範圍即商店1!A1:Q500

使用它來創建一張從所有單個商店提取數據的主表,這可以爲區域管理者提供一個簡單的快照。您甚至可以鏡像原始選項卡結構。

0

評論對單獨的工作簿架構和IMPORTRANGE

我奉勸不要分裂應用到單獨的工作簿。使用ImportRange()需要將共享權限設置爲「任何人都有鏈接」,而不是更安全的「僅限特定用戶」。

由於此安全問題,我剛剛將費用授權應用程序從單獨的(六個)工作簿重新架構到單個主工作簿。

替代方案:內容服務

在我的應用程序,我使用的內容服務做編輯操作,只有數據庫的所有者可以做。授權用戶只能編輯特定工作表中的特定範圍。然後做這些魔術,他們使用作爲數據庫所有者運行的內容服務來執行宏。

控制查看

可以想象,你可以在工作簿中隱藏依賴於用戶是誰牀單編程。這要求他們自己進行身份驗證(例如,您不能在onOpen()中執行此操作,問題是當您讓協作者同時查看工作簿時,看看Sheets如何處理同一文檔的併發視圖會很有趣。 ,我敢打賭,它會工作。