Базовое форматирование

С помощью API Google Sheets можно изменять форматирование ячеек и диапазонов в электронных таблицах. Примеры на этой странице иллюстрируют, как можно выполнить некоторые распространенные операции форматирования с помощью API Sheets. Больше примеров условного форматирования вы найдете на странице «Примеры условного форматирования» .

При обновлении электронной таблицы некоторые типы запросов могут возвращать ответы. Ответы возвращаются в виде массива, причем каждый ответ занимает тот же индекс, что и соответствующий запрос. Некоторые запросы не имеют ответов, и для них ответ является пустым. Структуру ответов для этих примеров можно найти в функции spreadsheets.batchUpdate .

Эти примеры представлены в виде HTTP-запросов, чтобы обеспечить языковую нейтральность. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек Google API, см. раздел «Обновление электронных таблиц» .

В этих примерах заполнители SPREADSHEET_ID и SHEET_ID указывают, где следует указывать эти идентификаторы. Идентификатор электронной таблицы можно найти в URL-адресе электронной таблицы. Идентификатор листа можно получить, используя метод spreadsheets.get . Диапазоны указываются с использованием обозначения A1 . Пример диапазона: Sheet1!A1:D5.

В приведенном выше видео вы узнаете, как форматировать ячейки электронных таблиц различными способами, включая: создание фиксированных строк, выделение ячеек жирным шрифтом, применение форматирования валюты, проверку данных в ячейках и ограничение значений ячеек.

Редактировать границы ячеек

Приведенный ниже пример кода spreadsheets.batchUpdate демонстрирует, как использовать UpdateBordersRequest для добавления пунктирной синей верхней и нижней границы к каждой ячейке в диапазоне A1:F10. Поле innerHorizontal создает горизонтальные границы внутри диапазона. Если это поле отсутствует, границы будут добавлены только сверху и снизу всего диапазона.

Таблица 3х3, каждая ячейка которой имеет пунктирную синюю верхнюю и нижнюю границы.
Рисунок 1. Отформатируйте каждую ячейку на листе, добавив пунктирную синюю верхнюю и нижнюю границы.

Протокол запроса представлен ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

Форматирование строки заголовка

Следующий пример кода spreadsheets.batchUpdate демонстрирует, как использовать RepeatCellRequest для форматирования строки заголовка на листе. Первый запрос обновляет цвет текста, цвет фона, размер шрифта и выравнивание текста, а также делает текст жирным. Если не указывать индексы столбцов в поле range , форматируется вся строка. Второй запрос корректирует свойства листа таким образом, чтобы строка заголовка оставалась неизменной.

Таблица 3х3 с отформатированной строкой заголовка на листе.
Рисунок 2. Форматирование строки заголовка на листе.

Протокол запроса представлен ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

Объединение клеток

Приведенный ниже пример кода spreadsheets.batchUpdate демонстрирует использование MergeCellsRequest для объединения ячеек. Первый запрос объединяет диапазон A1:B2 в одну ячейку. Второй запрос объединяет столбцы в диапазоне A3:B6, оставляя строки разделенными.

Таблица 3х3 с объединенными ячейками на листе.
Рисунок 3. Объединение ячеек в листе.

Протокол запроса представлен ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

Задайте пользовательский формат даты и времени или десятичный формат для диапазона.

Приведенный ниже пример кода spreadsheets.batchUpdate демонстрирует, как использовать RepeatCellRequest для обновления ячеек с заданными форматами даты и времени, а также числовых форматов. Первый запрос присваивает ячейкам в диапазоне A1:A10 заданный формат даты и времени hh:mm:ss am/pm, ddd mmm dd yyyy . Пример даты и времени в этом формате: "02:05:07 PM, Sun Apr 03 2016".

Второй запрос задает для ячеек B1:B10 пользовательский формат чисел #,##0.0000 , который указывает, что числа должны группироваться с использованием запятых в качестве разделителей, что после десятичной точки должно быть 4 цифры, и что все ведущие нули, кроме одного, должны быть отброшены. Например, число "3.14" отображается как "3.1400", а "12345.12345" — как "12,345.1235".

Для получения более подробной информации см. раздел «Форматы даты и чисел» .

Таблица 3х3 с настраиваемыми форматами даты, времени и чисел на листе.
Рисунок 4. Обновление ячеек в таблице для добавления пользовательских форматов даты и времени, а также числовых форматов.

Протокол запроса представлен ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}