我正在使用此请求代码将这些复选框插入一列,但是我还需要默认将它们全部设置为true。到目前为止,我已经看到了带有多个“值”的示例,每行一个,但是我想知道是否有一种方法可以只声明一次,并且已经为范围中的所有其他值设置了
var resource = {"requests": [
{"repeatCell": {
"cell": {"dataValidation": {"condition":{"type": "BOOLEAN"}}},
"range": {"sheetId": sheetId, "startRowIndex": 1, "endRowIndex": 300, "startColumnIndex": 18},
"fields": "dataValidation"
}
},
{"updateCells": {
"rows": {"values": {"userEnteredValue": {"boolValue": true}}},
"range": {"sheetId": sheetId, "startRowIndex": 1, "endRowIndex": 300, "startColumnIndex": 18},
"fields": "userEnteredValue"
}
}
]};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
答案 0 :(得分:1)
可以使用单个repeatCell
请求来更改所需的“数据验证”和“用户输入的值”属性,而不是同时使用updateCells
和repeatCell
请求范围。关键是必须同时包括(表示要修改的属性的)“ fields”参数和实际属性,(或故意删除,以便删除)。
然后将修改指定范围内的所有单元格(R2C19:R301C19,因为“ _____Index”表示-> 0-base),以使用您在请求中找到的指定属性:
var resource = {"requests": [
{"repeatCell": {
"cell": {
"dataValidation": {"condition":{"type": "BOOLEAN"}},
"userEnteredValue": {"boolValue": true}
},
"range": {
"sheetId": sheetId,
"startRowIndex": 1,
"endRowIndex": 300,
"startColumnIndex": 18,
"endColumnIndex": 19 // Specify the end to insert only one column of checkboxes
},
"fields": "dataValidation,userEnteredValue"
}
}]};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
请注意,如果省略endColumnIndex
,则GridRange
被解释为无界的:
所有索引均从零开始。索引是半开的,例如,起始索引是包含端点的,结束索引是互斥的[[
startIndex
,endIndex
)。缺少索引表示该范围在该侧是无界的。
参考文献: