我研究了这个主题并发现了这个:Google Sheets API 按日期排序列 问题是它按 A 列排序。
所以我将其更改为以下内容:
request = {
"requests": [
{
"sortRange": {
"range": {
"sheetId": sheet_id,
"startRowIndex": 1,
"startColumnIndex": 0
},
"sortSpecs": [
{
"dataSourceColumnReference": {
"name": "D"
},
"sortOrder": "DESCENDING"
}
]
}
}
]
}
sheets_service.batchUpdate(body=request, spreadsheetId=spreadsheet_id).execute()
但它仍然按 A 列排序。
在您显示的请求正文中,各列按第一列排序。如果您想按另一列而不是第一列对列进行排序,请使用
dimensionIndex
的属性。该值默认为 0。这样,当不使用 dimensionIndex
时,使用第一列。
例如,如果您想按第三列(“C”列)对列进行排序,请使用
dimensionIndex: 2
,如下所示。
request = {
"requests": [
{
"sortRange": {
"range": {
"sheetId": 0,
"startRowIndex": 1,
"startColumnIndex": 0
},
"sortSpecs": [
{
"dataSourceColumnReference": {
"name": "D"
},
"sortOrder": "DESCENDING",
"dimensionIndex": 2 # <--- here
}
]
}
}
]
}
sheets_service.batchUpdate(body=request, spreadsheetId=spreadsheet_id).execute()
dimensionIndex
的第一个值为0。(https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/other#SortSpec)