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

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

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

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

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