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

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

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

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

В этих примерах заполнители SPREADSHEET_ID и SHEET_ID указывают, где вы будете предоставлять эти идентификаторы. Идентификатор таблицы можно найти в URL-адресе таблицы. Вы можете получить идентификатор листа , используя метод spreadsheets.get . Диапазоны указаны с использованием обозначения A1 . Пример диапазона: Лист1!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 . Пример даты и времени в этом формате: «14:05:07, воскресенье, 3 апреля 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"
      }
    }
  ]
}