因此,作为对difficulties creating a new sheet with groups的解决方法,我试图在对batchUpdate的单独调用中创建和折叠这些组。我可以成功调用请求addDimensionGroup
,但是当我请求updateDimensionGroup
折叠我刚刚创建的组时,无论是在同一API调用中还是在单独的API调用中,都会出现此错误:
{
"error": {
"code": 400,
"message": "Invalid requests[1].updateDimensionGroup: dimensionGroup.depth must be \u003e 0",
"status": "INVALID_ARGUMENT"
}
}
但是我将深度传递为0,如我在请求中发送的以下JSON所示:
{
"requests":[{
"addDimensionGroup":{
"range":{
"dimension":"ROWS",
"sheetId":0,
"startIndex":2,
"endIndex":5}
}
},{
"updateDimensionGroup":{
"dimensionGroup":{
"range": {
"dimension":"ROWS",
"sheetId":0,
"startIndex":2,
"endIndex":5
},
"depth":0,
"collapsed":true
},
"fields":"*"
}
}],
"includeSpreadsheetInResponse":true}',
...
我不确定我应该为“字段”提供什么,UpdateDimensionGroupRequest的文档说应该是字符串(“ string(FieldMask格式)”),但是{{ 3}}显示了多个路径的可能性,但没有告诉我应该如何将它们分隔为单个字符串。
我在这里做什么错了?
答案 0 :(得分:1)
错误消息实际上是在指示您dimensionGroup.depth
的值必须为> 0
:
如果您在工作表上调用spreadsheets.get()
,并且仅请求DimensionGroup
数据,您会注意到创建的组实际上位于深度1
:
GET https://sheets.googleapis.com/v4/spreadsheets/{SSID}?fields=sheets(rowGroups)&key={API_KEY}
这很有意义,因为深度是(根据API规范):
深度 编号
组的深度,表示有多少组的范围完全包含此组的范围。
请注意,根据定义,任何给定的特定DimensionGroup
“都包含其自己的范围” 。
如果您的目标是更改DimensionGroup
的状态,则需要设置其collapsed
属性:
{
"requests":
[
{
"updateDimensionGroup":
{
"dimensionGroup":
{
"range":
{
"sheetId": <your sheet id>,
"dimension": "ROWS",
"startIndex": 2,
"endIndex": 5
},
"collapsed": true,
"depth": 1
},
"fields": "collapsed"
}
}
]
}
对于特定的Request
,您可以设置的唯一属性是collapsed
-其他属性用于标识所需的DimensionGroup
进行操作。因此,指定fields: "*"
等效于fields: "collapsed"
。对于大多数请求而言,情况并非如此,因此指定fields: "*"
然后省略不需要的请求参数将被解释为“从服务器的表示中删除缺少的参数”。
要更改DimensionGroup
的{{1}},必须添加或删除包含它的其他depth
。