【问题标题】:gspread protect sheet except certain cellsgspread 保护表,某些单元格除外
【发布时间】:2021-08-26 00:17:43
【问题描述】:

我正在使用 pythons gspread 库。 到目前为止,它已经给了我我所需要的东西,但我在这个问题上遇到了困难: 除了通过pythons gspread某些单元格之外,如何做相当于保护表的功能?

例如我想保护整个工作表(不仅仅是一个范围),除了特定范围(以 A1 为例)。

我可以毫无问题地保护一个范围,但不保护这个受保护的范围是我被难住的地方。

知道怎么做吗?

谢谢

【问题讨论】:

    标签: python google-sheets google-sheets-api protected gspread


    【解决方案1】:

    我相信你的目标和你目前的情况如下。

    • 您想保护 Google 电子表格中的工作表。
    • 在这种情况下,您只想取消保护工作表的单元格“A1”。
    • 您想使用 python 的 gspread 来实现。
    • 您已经能够使用 Sheets API 为 Google 电子表格获取和输入值。

    我认为在你的情况下,可以使用batchUpdate方法的AddProtectedRangeRequest。

    示例脚本:

    client = gspread.authorize(credentials) # Pleaase use your "client" here.
    
    spreadsheetId = "###" # Please set the Spreadsheet ID.
    sheetName = "Sheet1" # Please set the sheet name you want to protect.
    emailAddress = "###" # Please set your email address.
    
    spreadsheet = client.open_by_key(spreadsheetId)
    sheetId = spreadsheet.worksheet(sheetName).id
    body = {
        "requests": [
            {
                "addProtectedRange": {
                    "protectedRange": {
                        "range": {
                            "sheetId": sheetId
                        },
                        "unprotectedRanges": [
                            {
                                "sheetId": sheetId,
                                "startRowIndex": 0,
                                "endRowIndex": 1,
                                "startColumnIndex": 0,
                                "endColumnIndex": 1
                            }
                        ],
                        "editors": {
                            "domainUsersCanEdit": False,
                            "users": [emailAddress]
                        },
                        "warningOnly": False
                    }
                }
            }
        ]
    }
    spreadsheet.batch_update(body)
    
    • 运行此脚本时,sheetName 工作表中除单元格“A1”外的所有单元格都受到保护。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 2020-08-08
      • 2015-11-10
      • 2018-12-21
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多