gspread 保护表,某些单元格除外
Posted
技术标签:
【中文标题】gspread 保护表,某些单元格除外【英文标题】:gspread protect sheet except certain cells 【发布时间】:2021-08-26 00:17:43 【问题描述】:我正在使用 pythons gspread 库。 到目前为止,它已经给了我我所需要的东西,但我在这个问题上遇到了困难: 除了通过pythons gspread某些单元格之外,如何做相当于保护表的功能?
例如我想保护整个工作表(不仅仅是一个范围),除了特定范围(以 A1 为例)。
我可以毫无问题地保护一个范围,但不保护这个受保护的范围是我被难住的地方。
知道怎么做吗?
谢谢
【问题讨论】:
【参考方案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”外的所有单元格都受到保护。
参考资料:
batch_update(body) AddProtectedRangeRequest【讨论】:
以上是关于gspread 保护表,某些单元格除外的主要内容,如果未能解决你的问题,请参考以下文章