使用Python调用Google Sheets API按指定列排序失效问题求助
解决Google Sheets API按指定列排序无效的问题
你的问题出在**sortSpecs里使用了错误的字段**:dataSourceColumnReference是给绑定外部数据源(比如BigQuery、Google Forms等)的表格用的,普通工作表排序必须用columnIndex指定列的索引(索引从0开始计数,A列=0,D列=3)。
另外你的range定义只指定了startColumnIndex,建议补充endColumnIndex明确排序的列范围,避免出现意外的排序范围问题。
修正后的代码如下:
request = { "requests": [ { "sortRange": { "range": { "sheetId": sheet_id, "startRowIndex": 1, "startColumnIndex": 0, "endColumnIndex": 4 # 假设要联动排序A-D列,可根据实际需求调整 }, "sortSpecs": [ { "columnIndex": 3, # D列对应的索引是3(A=0,B=1,C=2,D=3) "sortOrder": "DESCENDING" } ] } } ] } sheets_service.batchUpdate(body=request, spreadsheetId=spreadsheet_id).execute()
关键说明:
columnIndex:对应工作表中列的索引值,从0开始递增,D列对应数值3range中的endColumnIndex:如果需要排序D列时带动其他列同步排序,要设置到目标列的下一个索引(比如包含D列就设为4);如果仅需单独排序D列,可将startColumnIndex和endColumnIndex分别设为3和4
内容的提问来源于stack exchange,提问作者Dror
相关产品推荐
相关产品推荐

