Python googleapiclient Добавить строку с цветом фона - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь вставить строку в лист Google при настройке цвета фона.

У меня есть приложение к новому ряду, работающее нормально. Из того, что я смог увидеть в docs, backgroundcolor задан как словарь RGB, но я не могу найти ничего, какие документы, где это сделать с официальным API. Я пробовал это в вызове добавления, но это, похоже, не работает.

Кажется, более вероятно, что это должно быть в теле, но я пробовал варианты там, и я получаю ответы TypeError.

range_notation = "Sheet1"
    body = {
        'values': [
            row
        ],
        'backgroundColor' : {'red': 1, 'green': 0, 'blue': 100}
    }

    result = sheet.values().append(spreadsheetId=spreadsheet_id,
                                   range=range_notation,
                                   body=body,
                                   valueInputOption="RAW",
                                   insert

Пробные варианты, такие как:

body = {
        'values': [
            {
                'userEnteredValue': row,
                'userEnteredFormat': {
                    'backgroundColor': {'red': 100, 'green': 0, 'blue': 0},
                },
            },
        ],

    }

, но он получает HttpError из библиотеки.

1 Ответ

2 голосов
/ 17 октября 2019
  • Вы хотите добавить строку, указав значения.
  • Вы хотите изменить цвета фона добавленной строки.
  • Вы хотите добиться этого с помощью google-api-python-client с python.
  • Вы уже добавили и получили значения для Spreadsheet, используя Sheets API.

Если мое понимание верно, как насчет этого примера сценария?

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

  • Чтобы добавить значения и изменить цвет фона, используется метод spreadsheets.batchUpdate в API Sheets.

Шаблон 1:

В этом шаблоне значения «sample1», «sample2», «sample3» добавляются к листу в виде строки, а цвет фона этих ячеек изменяется.

Samplescript:

spreadsheet_id = '###' # Please set Spreadsheet ID
sheetId = 0 # Please set sheet ID. For example, the 1st sheet ID of the default Spreadsheet is 0.
row = ['sample1', 'sample2', 'sample3'] # Please set the values.

values = [{'userEnteredFormat': {'backgroundColor': {'red': 1, 'green': 0, 'blue': 100}}, 'userEnteredValue': {'stringValue': col}} for col in row]
requests = {'requests': [{'appendCells': {'rows': [{'values': values}], 'fields': 'userEnteredFormat.backgroundColor,userEnteredValue', 'sheetId': sheetId}}]}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=requests).execute()
print(response)

Pattern 2:

В этом шаблоне значения «sample1», «sample2», «sample3» добавляются на лист в виде строки и цвета фонастроки изменяется.

Пример сценария:

spreadsheet_id = '###' # Please set Spreadsheet ID
sheetId = 0 # Please set sheet ID. For example, the 1st sheet ID of the default Spreadsheet is 0.
row = ['sample1', 'sample2', 'sample3'] # Please set the values.

ss = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute()
for sheet in ss['sheets']:
    if sheet['properties']['sheetId'] == sheetId:
        row.extend([''] * (sheet['properties']['gridProperties']['columnCount'] - len(row)))
        break
values = [{'userEnteredFormat': {'backgroundColor': {'red': 1, 'green': 0, 'blue': 100}}, 'userEnteredValue': {'stringValue': col}} for col in row]
requests = {'requests': [{'appendCells': {'rows': [{'values': values}], 'fields': 'userEnteredFormat.backgroundColor,userEnteredValue', 'sheetId': sheetId}}]}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=requests).execute()
print(response)

Ссылки:

ЕслиЯ неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...