使用 api sheet 冻结枢轴 table 内的列
Froze a column inside a pivot table with api sheet
您知道如何使用 FrozenColumnCount 属性(或另一个)在数据透视表 table 内冻结列吗?
request_body ={
"requests" : {
"updateCells" : {
"rows" : {
"values" : [
{
"pivotTable" : {
#Data Source
"source" : {
"sheetId": "0",
"startRowIndex" : 0,
"startColumnIndex" : 0,
},
#Row Field(s)
"rows" : [
#field 2
{
"sourceColumnOffset" : 5, #Type Preneur
"showTotals" : False,
"sortOrder" : "ASCENDING"
},
],
#Columns Field(s)
"columns" : [
#Field 2
{
"sourceColumnOffset" : 18, #Année
"sortOrder" : "ASCENDING",
"showTotals" : True
}
],
"criteria" : {
6:{
'visibleValues' : ['Solde Créditeur']
},
},
"filterSpecs": [
{
"filterCriteria": {
'visibleValues' : ['Solde Créditeur']
},
"columnOffsetIndex": 6
}
],
#Values Field(s)
"values" : [
{
"sourceColumnOffset" : 21, #PNS BRUT PPSO
"summarizeFunction" : "SUM",
"name" : ""
}
],
"valueLayout" : "HORIZONTAL"
}
}
]
},
"start": {
"sheetId" : id_new_sheet,
"rowIndex" : 0,
"columnIndex" : 0
},
'fields' : 'pivotTable'
}
},
"properties": {
"gridProperpties" : {
"frozenColumnCount": 1,
}
}
}
支点table 有效。我想冻结第一列。这是我收到的错误消息:
收到无效的 JSON 负载。未知名称“属性”:找不到字段。详细信息:“[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'description': 'Invalid JSON payload received. Unknown name "properties": Cannot find field.'}]} ]">.
修改点:
frozenColumnCount
用于 UpdateSheetPropertiesRequest
的 属性。我认为这就是您遇到问题的原因。
- 属性 of
requests
必须是数组。
当这些点反映到请求体中,就变成了下面这样
修改后的请求正文:
{
"requests": [
{
"updateCells": {
"rows": [
{
"values": [
{
"pivotTable": {
"source": {
"sheetId": 0,
"startRowIndex": 0,
"startColumnIndex": 0
},
"rows": [
{
"sourceColumnOffset": 5,
"showTotals": false,
"sortOrder": "ASCENDING"
}
],
"columns": [
{
"sourceColumnOffset": 18,
"sortOrder": "ASCENDING",
"showTotals": true
}
],
"criteria": {
"6": {
"visibleValues": [
"Solde Créditeur"
]
}
},
"filterSpecs": [
{
"filterCriteria": {
"visibleValues": [
"Solde Créditeur"
]
},
"columnOffsetIndex": 6
}
],
"values": [
{
"sourceColumnOffset": 21,
"summarizeFunction": "SUM",
"name": ""
}
],
"valueLayout": "HORIZONTAL"
}
}
]
}
],
"start": {
"sheetId": id_new_sheet,
"rowIndex": 0,
"columnIndex": 0
},
"fields": "pivotTable"
}
},
{
"updateSheetProperties": {
"properties": {
"gridProperties": {
"frozenColumnCount": 1
},
"sheetId": id_new_sheet
},
"fields": "gridProperties.frozenColumnCount"
}
}
]
}
在此修改后的请求正文中,frozenColumnCount
设置为 sheet id_new_sheet
。如果要更改sheet,请修改这里。
从The pivot table works.
开始,我没有修改updateCells
的参数。
参考:
由于您已经在使用 batchUpdate
发出请求,因此实现您的目标的最简单方法是在同一呼叫中发出两个请求。为此,只需转换 requests
字段并使其成为包含您的两个请求的列表:updateCells
和 updateSheetProperties
。
您可以使用以下内容填充最后一个:
"updateSheetProperties": {
"fields":"gridProperties.frozenColumnCount",
"properties": {
"sheetId":0, #A 0 if this is the first sheet
"gridProperties":{"frozenColumnCount":1}
}
}
您可以详细了解这些请求的结构here。
您知道如何使用 FrozenColumnCount 属性(或另一个)在数据透视表 table 内冻结列吗?
request_body ={
"requests" : {
"updateCells" : {
"rows" : {
"values" : [
{
"pivotTable" : {
#Data Source
"source" : {
"sheetId": "0",
"startRowIndex" : 0,
"startColumnIndex" : 0,
},
#Row Field(s)
"rows" : [
#field 2
{
"sourceColumnOffset" : 5, #Type Preneur
"showTotals" : False,
"sortOrder" : "ASCENDING"
},
],
#Columns Field(s)
"columns" : [
#Field 2
{
"sourceColumnOffset" : 18, #Année
"sortOrder" : "ASCENDING",
"showTotals" : True
}
],
"criteria" : {
6:{
'visibleValues' : ['Solde Créditeur']
},
},
"filterSpecs": [
{
"filterCriteria": {
'visibleValues' : ['Solde Créditeur']
},
"columnOffsetIndex": 6
}
],
#Values Field(s)
"values" : [
{
"sourceColumnOffset" : 21, #PNS BRUT PPSO
"summarizeFunction" : "SUM",
"name" : ""
}
],
"valueLayout" : "HORIZONTAL"
}
}
]
},
"start": {
"sheetId" : id_new_sheet,
"rowIndex" : 0,
"columnIndex" : 0
},
'fields' : 'pivotTable'
}
},
"properties": {
"gridProperpties" : {
"frozenColumnCount": 1,
}
}
}
支点table 有效。我想冻结第一列。这是我收到的错误消息: 收到无效的 JSON 负载。未知名称“属性”:找不到字段。详细信息:“[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'description': 'Invalid JSON payload received. Unknown name "properties": Cannot find field.'}]} ]">.
修改点:
frozenColumnCount
用于UpdateSheetPropertiesRequest
的 属性。我认为这就是您遇到问题的原因。- 属性 of
requests
必须是数组。
当这些点反映到请求体中,就变成了下面这样
修改后的请求正文:
{
"requests": [
{
"updateCells": {
"rows": [
{
"values": [
{
"pivotTable": {
"source": {
"sheetId": 0,
"startRowIndex": 0,
"startColumnIndex": 0
},
"rows": [
{
"sourceColumnOffset": 5,
"showTotals": false,
"sortOrder": "ASCENDING"
}
],
"columns": [
{
"sourceColumnOffset": 18,
"sortOrder": "ASCENDING",
"showTotals": true
}
],
"criteria": {
"6": {
"visibleValues": [
"Solde Créditeur"
]
}
},
"filterSpecs": [
{
"filterCriteria": {
"visibleValues": [
"Solde Créditeur"
]
},
"columnOffsetIndex": 6
}
],
"values": [
{
"sourceColumnOffset": 21,
"summarizeFunction": "SUM",
"name": ""
}
],
"valueLayout": "HORIZONTAL"
}
}
]
}
],
"start": {
"sheetId": id_new_sheet,
"rowIndex": 0,
"columnIndex": 0
},
"fields": "pivotTable"
}
},
{
"updateSheetProperties": {
"properties": {
"gridProperties": {
"frozenColumnCount": 1
},
"sheetId": id_new_sheet
},
"fields": "gridProperties.frozenColumnCount"
}
}
]
}
在此修改后的请求正文中,
frozenColumnCount
设置为 sheetid_new_sheet
。如果要更改sheet,请修改这里。从
The pivot table works.
开始,我没有修改updateCells
的参数。
参考:
由于您已经在使用 batchUpdate
发出请求,因此实现您的目标的最简单方法是在同一呼叫中发出两个请求。为此,只需转换 requests
字段并使其成为包含您的两个请求的列表:updateCells
和 updateSheetProperties
。
您可以使用以下内容填充最后一个:
"updateSheetProperties": {
"fields":"gridProperties.frozenColumnCount",
"properties": {
"sheetId":0, #A 0 if this is the first sheet
"gridProperties":{"frozenColumnCount":1}
}
}
您可以详细了解这些请求的结构here。