簡體   English   中英

允許腳本編輯鎖定的單元格

[英]Allow script to edit locked cells

我有一個復雜的電子表格,其中大部分工作表都被鎖定,用戶只能編輯少數幾個單元格,這些單元格會觸發一系列計算。 這曾經工作得很好,但現在的問題是我添加了一個繪圖,我附加了一個腳本,所以它充當了一個按鈕。 這樣做會強制用戶必須授權,現在腳本以該用戶身份運行,因此當腳本嘗試更新鎖定到用戶的單元格時,它會失敗。

我如何才能使用戶無法在單元格中鍵入內容,但我的腳本仍然可以更新它們。 基本上我希望腳本可以完全訪問工作表,而不受用戶權限的限制。

解決方法#1 - 服務帳戶:

  • 創建服務帳號

  • 使用服務帳號電子郵件的編輯權限共享您的電子表格

  • 安裝並使用Google oauth2 庫以獲取具有必要范圍(Drive/Sheets/Both)的 Bearer 令牌。 此令牌可用於模擬服務帳戶。

  • 使用上面的不記名令牌,您可以直接訪問

    • 使用
    • 或使用已發布的 web 應用程序(設置為“用戶訪問應用程序”和“任何人”)來使用內置服務,例如SpreadsheetApp 請參閱下面鏈接的第二個相關答案。
  • 在這種情況下,服務帳戶的PRIVATE_KEY充當密碼以訪問具有編輯權限的電子表格。 因此,直接在腳本編輯器中公開它可以讓任何編輯器訪問電子表格的受保護區域和所有服務帳戶資源。 因此,在某種程度上,保護區並不是以絕對的方式受到保護。 如果需要絕對保護保護區,您可以繞過此限制

    • 使用兩個腳本項目:一個綁定的一個post數據到一個未綁定的一個,它作為一個網絡應用程序發布並保存私鑰。 在這里,可以為編輯器提供密碼以訪問未綁定的腳本。

    • 另一種方法是簡單地發布插件,因為插件的源代碼永遠不會對最終用戶可見。

解決方法#2 - 可安裝的觸發器:

  • 使用帶有復選框的可安裝編輯觸發器 用戶單擊未受保護區域中的復選框,腳本會修改受保護區域。

  • 可安裝觸發器在安裝它的用戶的權限下運行,而不是作為當前用戶運行。

  • 他們可以繞過工作表的權限限制。 但這是一把雙刃劍。 任何具有編輯權限的人都可以觸發腳本。 不僅如此,他們還可以訪問腳本編輯器並按照他們認為合適的方式修改腳本。 為了限制違規使用,

有關的:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM