Как я могу сбросить цвет листа Google через API

Основываясь на этом вопросе о настройке цвета, мне интересно, как сбросить / очистить цвет вкладки Google Sheet.

Для справки, вот как установить цвет

    sheet = open_worksheet() # does all the auth/credential work
    new_tab = sheet.worksheet('DemoTab')

    body = {
        "requests": [
            {
                "updateSheetProperties": {
                    "properties": {
                        "sheetId": new_tab.id,
                        "tabColor": {
                            "red": 1.0,
                            "green": 0.3,
                            "blue": 0.4
                        }
                    },
                    "fields": "tabColor"
                }
            }
        ]
    }

    try:
        res = sheet.batch_update(body)
        pprint(res)
    except gspread.exceptions.APIError as gea:
        pprint(gea.args[0], width=100)

Во всей документации указано, что «tabColor» должен быть объектом Color (как показано выше с указанием красного, зеленого и синего цветов). Существует также необязательная альфа.

Есть еще параметр tabColorStyle, но он тоже ищет цвет.

Я попытался установить «tabColor» на пустой словарь, {}, RGB на 0 каждый и RGB на -1 каждый. Все в конечном итоге просто превращает цвет в черный.

Там нет упоминания об опции .clear.

Итак, как мне удалить цвет после того, как он был установлен?

Вот ссылка на Google Sheet API и свойства листа, где я искал, как должен выглядеть запрос.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
343
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю вашу цель следующим образом.

  • Вы хотите сбросить цвета вкладок листов в электронной таблице Google.
  • Вы хотите добиться этого с помощью gspread.

Пункт модификации:

  • В этом случае я думаю, что использование значения fields является важным моментом. Когда "fields": "tabColor" используется для тела запроса метода batchUpdate, свойство tabColor изменяется. В этом случае, чтобы сбросить цвет вкладки, tabColor не включается в properties. При этом цвет вкладки сбрасывается.

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

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

spreadsheetId = "###" # Please set the Spreadsheet ID.

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
sheets = spreadsheet.worksheets()
body = {"requests": [{
    "updateSheetProperties": {
        "properties": {
            "sheetId": e.id,
        },
        "fields": "tabColor"
    }
} for e in sheets]}
spreadsheet.batch_update(body)
  • В этом примере скрипта сбрасываются цвета вкладок всех листов в электронной таблице Google.

Примечание:

  • Если вы хотите сбросить цвет вкладки одного из листов в электронной таблице Google, используйте следующий текст запроса.

      body = {"requests": [{
          "updateSheetProperties": {
              "properties": {
                  "sheetId": sheetId, # Please set the sheet ID.
              },
              "fields": "tabColor"
          }
      }]}
    

Использованная литература:

Другие вопросы по теме