Установите формат ячейки в электронной таблице Google Sheets, используя ее API и Python

Я использую gd_client.UpdateCell для обновления значений в электронной таблице Google и ищу способ обновить форматирование ячейки, например, цвет, линии, размер текста.....

Можно ли это сделать?

Есть ли примеры или другая доступная документация?

Что-нибудь, чтобы заставить меня идти, было бы здорово

3 ответа

(Февраль 2017 г.) Начиная с Google I / O 2016, разработчики теперь могут форматировать ячейки в Google Sheets с использованием новейшего API (v4). Вот короткий пример Python, который выделяет 1-ую строку (при условии, что идентификатор файла SHEET_ID а также SHEETS является конечной точкой службы API):

DATA = {'requests': [
    {'repeatCell': {
        'range': {'endRowIndex': 1},
        'cell':  {'userEnteredFormat': {'textFormat': {'bold': True}}},
        'fields': 'userEnteredFormat.textFormat.bold',
    }}
]}

SHEETS.spreadsheets().batchUpdate(
        spreadsheetId=SHEET_ID, body=DATA).execute()

Я также сделал видео для разработчиков на эту тему, если это поможет (см. Ниже). Кстати, вы не ограничены Python, вы можете использовать любой язык, поддерживаемый клиентскими библиотеками API Google.

Последний API Sheets предоставляет функции, недоступные в более ранних версиях, а именно предоставляет разработчикам программный доступ к Sheet, как если бы вы использовали пользовательский интерфейс (замороженные строки, форматирование ячеек [!], Изменение размеров строк / столбцов, добавление сводных таблиц, создание диаграмм, так далее.). Если вы новичок в API, я создал несколько видео с более реальными примерами:

Как вы можете заметить, API-интерфейсы Sheets в основном предназначены для ориентированных на документы функций, как описано выше, но для выполнения доступа на файловом уровне, такого как импорт / экспорт, копирование, перемещение, переименование и т. Д., Вместо этого используйте API-интерфейс Google Drive.

Я не думаю, что это можно сделать в настоящее время. Текущие API (как List, так и API Cell) позволяют изменять данные, но не форматировать.

Все API описаны здесь. Ничего о форматировании:

Многие люди запрашивают это в группах, но никогда не получают ответ от Google:

Google Apps Script выглядит так, как будто он может принести некоторые из этих функций, в частности, в класс Range

https://developers.google.com/apps-script/reference/spreadsheet/range

Важно отметить, что я не выяснил, как привязать (и / или выполнить) скрипт Google Apps к листу, который я в настоящее время создаю и заполняю, используя API Google Drive и Google Sheets API.

Я не предлагаю переносить ваше приложение на Google Apps Script, но я серьезно рассматриваю его на данном этапе. Я надеюсь, что, возможно, у кого-то еще есть мысли по поводу последней недостающей части соединения API со скриптом Google Apps.