С помощью 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 создает горизонтальные границы внутри диапазона. Если это поле отсутствует, границы будут добавлены только сверху и снизу всего диапазона.
Протокол запроса представлен ниже.
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 , форматируется вся строка. Второй запрос корректирует свойства листа таким образом, чтобы строка заголовка оставалась неизменной.
Протокол запроса представлен ниже.
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, оставляя строки разделенными.
Протокол запроса представлен ниже.
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".
Для получения более подробной информации см. раздел «Форматы даты и чисел» .
Протокол запроса представлен ниже.
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" } } ] }