Python Google Spreadsheet API排序无效

黑格纳

我使用google示例https://developers.google.com/sheets/api/samples/charts(出于测试目的,仅切换第3行和第4行)来使用Python v3.7.8测试Google Spreadshhet API v4:

  • 创建柱形图
  • 对“ A”列进行排序

数据存储在Google云端硬盘中的电子表格中,我在其中创建了柱形图。

在此处输入图片说明

柱形图已创建,但列“ A”未排序(升序)。以下代码:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

...

body = {'requests': [
    {'addChart': 
     {'chart': 
      {'spec': 
       {'title': 'Model Q1 Sales', 
        'titleTextPosition': {'horizontalAlignment': 'CENTER'}, 
        'basicChart': 
        {'domains': [
            {'domain': 
             {'sourceRange': 
              {'sources': [
                  {'sheetId': 909072886, 
                   'startRowIndex': 0, 
                   'endRowIndex': 7, 
                   'startColumnIndex': 0, 
                   'endColumnIndex': 1}]}}}], 
         'series': [
             {'series': 
              {'sourceRange': 
               {'sources': [
                   {'sheetId': 909072886, 
                    'startRowIndex': 0, 
                    'endRowIndex': 7, 
                    'startColumnIndex': 1, 
                    'endColumnIndex': 2}]}}, 
              'targetAxis': 'LEFT_AXIS'}, 
             {'series': 
              {'sourceRange': 
               {'sources': [
                   {'sheetId': 909072886, 
                    'startRowIndex': 0, 
                    'endRowIndex': 7, 
                    'startColumnIndex': 2, 
                    'endColumnIndex': 3}]}}, 
              'targetAxis': 'LEFT_AXIS'},   
             {'series': 
              {'sourceRange': 
               {'sources': [
                   {'sheetId': 909072886, 
                    'startRowIndex': 0, 
                    'endRowIndex': 7, 
                    'startColumnIndex': 3, 
                    'endColumnIndex': 4}]}}, 
              'targetAxis': 'LEFT_AXIS'}], 
         'legendPosition': 'BOTTOM_LEGEND', 
         'axis': [
             {'position': 'BOTTOM_AXIS', 
              'title': 'Model Numbers', 
              'titleTextPosition': {'horizontalAlignment': 'CENTER'}}, 
             {'position': 'LEFT_AXIS', 
              'title': 'Sales', 
              'titleTextPosition': {'horizontalAlignment': 'CENTER'}}], 
         'headerCount': 1, 
         'chartType': 'COLUMN',  
         'stackedType': 'STACKED'}, 
        'sortSpecs': [
            {'dimensionIndex': 0, 
             'sortOrder': 'ASCENDING'}]}, 
       'position': 
       {'overlayPosition': 
        {'anchorCell': 
         {'sheetId': 909072886, 
          'rowIndex': 7, 
          'columnIndex': 6}
        }
       }
      }
     }
    }
]
}

response = service.spreadsheets().batchUpdate(spreadsheetId=file_id, body=body).execute()

我应该得到以下信息:

在此处输入图片说明

但是我明白了:排序部分没有任何作用。

在此处输入图片说明

备注:我也尝试了不成功的sortSpecs

'dataSourceColumnReference': {'name': 'A'}

代替

'dimensionIndex': 0

不要犹豫,支持我!先感谢您。

am

问题:

添加图表时,sortSpecs仅支持来自外部数据源的数据。API参考

sortSpecs []:对图表数据进行排序的顺序。仅支持单个排序规范。仅支持数据源图表

解:

您应该对数据本身进行排序。您可以通过向您的添加一个sortRange请求来以编程方式执行此操作batchUpdate

body = {
    'requests': [
        {
            'sortRange': {
                'range': {
                    'sheetId': 909072886,
                    'startRowIndex': 1,
                    'endRowIndex': 7,
                    'startColumnIndex': 0,
                    'endColumnIndex': 5
                },
                'sortSpecs': [
                    {
                        'sortOrder': 'ASCENDING',
                        'dimensionIndex': 0
                    }
                ]
            }
        },
        {
            'addChart': {
                # Add chart request body
            }
        }
    ]
}

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Google Spreadsheet Python API或gspread是否允许图片或RTF?

Python Google Spreadsheet API气泡图未正确显示

Android-Google Spreadsheet Api

使用Google API更新SpreadSheet

错误400:redirect_uri_mismatch-Google Spreadsheet API-Python

如何使用Go中的Google Spreadsheet API?

Google Spreadsheet API返回网格限制错误

写入Google Spreadsheet API的速度非常慢

Google API 在位置 Google Spreadsheet PHP 添加行

Google Spreadsheet Script-表格更改时自动排序

如何使用python从Google Spreadsheet获取工作表ID?

Python:按列过滤Google SpreadSheet中的行

使用 Google Spreadsheet API 获取 Filter 视图过滤的值

如何使用Android Google Spreadsheet API创建列表范围验证

通过API向Google Spreadsheet添加多行

在Google Spreadsheet API中查找最后写入的行

使用Google SpreadSheet API更新iOS Swift中的特定行

Google Spreadsheet清除内容

对Google Spreadsheet的Maven依赖

Google Spreadsheet ImportHTML表

Google Spreadsheet IF公式

Google Sheet API是否具有Spreadsheet Metadate Update选项?尝试更新Google Spreadsheet名称,但找不到它

Google Spreadsheet脚本方法是否清除({commentsOnly})才能删除范围无效的注释?

在Java的Google驱动器中使用Google Spreadsheet API创建电子表格

与Google Sheets API v4兼容的PDI“ Google Spreadsheet输入/输出”插件吗?

使用适用于Android的Google文档和Google Spreadsheet API

从Google Directory API获取主要电话号码到Google Spreadsheet

连续执行Google Spreadsheet搜索

如何找到Google SpreadSheet ID?