提问者:小点点

谷歌幻灯片API更新表背景色


基本上,我在Google幻灯片演示文稿中有一个表(8行x 3列),我想通过API将背景颜色更改为。

我的rgb颜色值列表的第一项:

cons_data_lst[0][1][-1]
>>> [0.5882353, 0.7764706, 0.4862745]

我生成请求正文的功能:

def update_table_cell_colors(color_list):    
req = [{
    'updateTableCellProperties':{
        'objectId': 'obj_id',
        'tableRange': {
            'location': {
                'rowIndex': 1,
                'columnIndex': 2,
            },
            'rowSpan': 1,
            'columnSpan': 1,
        },
        'tableCellProperties':{
            'tableCellBackgrounFill':{
                'solidFill':{
                    'color':{
                        'rgbColor':{
                            'red': color_list[0],
                            'green': color_list[1],
                            'blue': color_list[2],
                        }
                    }
                }}
        }}} ]

return req

当我将批处理更新发送到演示文稿时,我收到以下错误:

HttpError:https://slides.googleapis.com/v1/presentations/1dzxYYPuqTM3VhwaR93Ep2jj_9Y2NCkSBsVBnmN6lcOs:batchUpdate?alt=json在“请求[0]”处返回“接收到无效的JSON负载。未知名称“table_cell_Background_fill”。更新_table_cell_属性。table_cell_属性”:找不到字段。“”。详细信息:“[{@type':'type.googleapis.com/google.rpc.BadRequest”,“fieldViolations':[{'field':'请求[0]。更新表格单元格属性。表格单元格属性”,“描述”:接收到无效的JSON负载。未知名称“表格单元格背景填充”在请求[0]。更新表格单元格属性。表格单元格属性:找不到字段。“}]””

给定不同rgb颜色值的列表,如何创建请求体来更新所有列(1到2)行(有8个)文本背景颜色?

非常感谢。


共1个答案

匿名用户

这个答案怎么样?

在本节中,将解释错误的原因。

  • 从请求[0]处的未知名称“table\u cell\u background\u fill”的错误消息中。更新表格单元格属性。表\u cell\u properties',发现tablecellbackgroundfill的属性名称存在拼写错误。请修改到tableCellBackgroundFill

当这些修改反映到您的请求主体时,它将变成如下所示。

req = [
 {
  'updateTableCellProperties': {
   'objectId': 'obj_id',
   'tableRange': {
    'location': {
     'rowIndex': 1,
     'columnIndex': 2
    },
    'rowSpan': 1,
    'columnSpan': 1
   },
   'tableCellProperties': {
    'tableCellBackgroundFill': {  # Modified
     'solidFill': {
      'color': {
       'rgbColor': {
        'red': color_list[0],
        'green': color_list[1],
        'blue': color_list[2],
       }
      }
     }
    }
   },
   'fields': 'tableCellBackgroundFill'  # Added
  }
 }
]
  • 在使用此脚本之前,请检查color_list'obj_id'

在本节中,它解释了的问题2给定一个不同rgb颜色值的列表,我如何创建一个请求体来更新所有列(1到2)行(有8个)文本背景颜色?.

在你的问题中,你说我在问题的顶部有一个表(8行x 3列)。但是在给定不同rgb颜色值的列表时,如何创建一个请求主体来更新所有列(1到2)行(有8个)文本背景颜色,你说的是列(1到2)。我对此感到困惑。因此,我想假设如下。

  • 您的表有8行2列
  • 您希望使用一种颜色更改所有列和行的背景色

请求主体的示例如下所示。

req = [
  {
    "updateTableCellProperties": 
    {
      "objectId": "obj_id",
      "tableRange": 
      {
        "location": 
        {
          "rowIndex": 0,
          "columnIndex": 0
        },
        "rowSpan": 8,
        "columnSpan": 2
      },
      "tableCellProperties": 
      {
        "tableCellBackgroundFill": 
        {
          "solidFill": 
          {
            "color": 
            {
              "rgbColor": 
              {
                "red": color_list[0],
                "green": color_list[1],
                "blue": color_list[2]
              }
            }
          }
        }
      },
      "fields": "tableCellBackgroundFill"
    }
  }
]
  • rowIndex柱状索引是起始单元格。
    • "rowIndex": 0"柱状索引": 0表示单元格"A1"。

    rowSpan栏位Span是行和列数。

    • “行span:8“列span:2表示8行2列。由此,单元“A1:B8”的背景色被改变
    • 如果您的表是8行3列,并且您希望更改所有单元格,请按如下方式设置它们。
      • 行索引:0列索引:0行span:8列span:3

      如果要更改每个单元格的特殊背景色,则需要为每个单元格创建请求正文数组。请小心这个。

      • 这个答案假设您已经能够使用SlidesAPI为Google幻灯片输入和获取值
      • UpdateTableCellPropertiesRequest

      如果我误解了你的问题,而这并没有解决你的问题,我道歉。