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

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

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

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

В этих примерах заполнители 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 . Пример datetime в этом формате: "02:05:07 PM, Sun Apr 03 2016".

The second request gives the cells in B1:B10 the custom number format #,##0.0000 , which indicates that numbers should be grouped with comma separators, that there should be 4 digits after the decimal, and that all but one leading zero should be dropped. For example, the number "3.14" is rendered as "3.1400", while "12345.12345" is rendered as "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"
      }
    }
  ]
}