Python 按列对谷歌表格 API 进行排序

问题描述 投票:0回答:1

我研究了这个主题并发现了这个: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 列排序。

python google-sheets google-api-client
1个回答
0
投票

在您显示的请求正文中,各列按第一列排序。如果您想按另一列而不是第一列对列进行排序,请使用

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

© www.soinside.com 2019 - 2024. All rights reserved.