Цвет фона таблицы обновлений API Google Slides - PullRequest
1 голос
/ 20 сентября 2019

По сути, у меня есть презентация (8 строк x 3 столбца) в презентации слайдов Google, на которую я хочу изменить цвет фона с помощью 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 возвратил «Получено недопустимое полезное содержимое JSON. Неизвестное имя« table_cell_backgroun_fill »в« Request [0] .update_table_cell_properties.table_cell_properties ': Не удается найти поле. ».Подробности: "[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'field': 'запросы [0] .update_table_cell_properties.table_cell_properties', 'description': 'Получена недопустимая полезная нагрузка JSON. Неизвестное имя «table_cell_backgroun_fill» при \ 'запросах [0] .update_table_cell_properties.table_cell_properties \': Невозможно найти поле. '}]}] ">значения цвета, как я могу создать тело запроса для обновления всех столбцов (от 1 до 2) строки (есть 8) цвет фона текста?

Спасибо.

1 Ответ

1 голос
/ 20 сентября 2019

Как насчет этого ответа?

A1:

В этом разделе объясняется причина ошибки.

Точки модификации:

  • Из сообщения об ошибке Unknown name "table_cell_backgroun_fill" at 'requests[0].update_table_cell_properties.table_cell_properties' обнаруживается, что имя свойства tableCellBackgrounFill является орфографической ошибкой.Пожалуйста, измените на tableCellBackgroundFill.
  • На updateTableCellProperties необходимо использовать свойство fields.В вашем случае, как насчет добавления "fields": "tableCellBackgroundFill"?Вы также можете использовать 'fields': '*'.

Когда эти изменения отражаются в теле вашего запроса, оно выглядит следующим образом.

Измененное тело запроса:

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',

A2:

В этом разделе объясняется вопрос 2из Given a list of different rgb color values, how can I create a request body to update all columns (1 to 2) row (there are 8) text background color ?.

В своем вопросе вы говорите I have table (8 rows x 3 columns) в верхней части вашего вопроса.Но в Given a list of different rgb color values, how can I create a request body to update all columns (1 to 2) row (there are 8) text background color ? вы говорите columns (1 to 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 и columnIndex - стартовая ячейка.
    • "rowIndex": 0 и "columnIndex": 0 означает ячейку «A1».
  • rowSpan и columnSpan - количество строк и столбцов.

    • "rowSpan": 8 и "columnSpan": 2 означает 8 строк и 2 столбца.При этом изменяются цвета фона ячеек «A1: B8».
    • Если в вашей таблице 8 строк и 3 столбца, и вы хотите изменить все ячейки, установите их следующим образом.
      • "rowIndex": 0, "columnIndex": 0 и "rowSpan": 8, "columnSpan": 3
  • Если вы хотите изменить специальный фонраскрасить каждую ячейку, необходимо создать массив тела запроса для каждой ячейки.Пожалуйста, будьте осторожны с этим.

Примечание:

  • Этот ответ предполагает, что вы уже смогли поместить и получить значения для Google Slides с помощью API слайдов.

Ссылки:

Если янеправильно понял ваш вопрос, и это не решило вашу проблему, я прошу прощения.

...