Podstawowe formatowanie

Za pomocą interfejsu Google Sheets API możesz aktualizować formatowanie komórek i zakresów w arkuszach kalkulacyjnych. Przykłady na tej stronie pokazują, jak za pomocą interfejsu Sheets API można wykonywać niektóre typowe operacje formatowania. Więcej przykładów formatowania warunkowego znajdziesz na stronie Przepisy na formatowanie warunkowe.

Podczas aktualizowania arkusza kalkulacyjnego niektóre rodzaje żądań mogą zwracać odpowiedzi. Są one zwracane w tablicy, a każda odpowiedź zajmuje ten sam indeks co odpowiadające jej żądanie. Niektóre żądania nie mają odpowiedzi, a w takich przypadkach odpowiedź jest pusta. Strukturę odpowiedzi w tych przykładach znajdziesz w sekcji spreadsheets.batchUpdate.

Przykłady te są przedstawione w postaci żądań HTTP, aby były niezależne od języka. Aby dowiedzieć się, jak zaimplementować aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta Google API, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.

W tych przykładach symbole zastępcze SPREADSHEET_ID i SHEET_ID wskazują, gdzie należy podać te identyfikatory. Identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza. Identyfikator arkusza możesz uzyskać za pomocą spreadsheets.get metody. Zakresy są określane za pomocą notacji A1. Przykładowy zakres to Arkusz1!A1:D5.

Z powyższego filmu dowiesz się, jak formatować komórki arkusza kalkulacyjnego na różne sposoby, m.in. jak tworzyć zamrożone wiersze, pogrubiać komórki, stosować formatowanie walutowe, przeprowadzać weryfikację komórek i ograniczać wartości komórek.

Edytowanie obramowania komórek

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak za pomocą UpdateBordersRequest nadać każdej komórce w zakresie A1:F10 przerywane, niebieskie obramowanie górne i dolne. Pole innerHorizontal tworzy poziome obramowania wewnątrz zakresu. Pominięcie tego pola spowoduje dodanie obramowań tylko u góry i u dołu całego zakresu.

Tabela 3 x 3, w której każda komórka ma przerywaną niebieską górną i dolną krawędź.
Rysunek 1. Formatowanie każdej komórki w arkuszu za pomocą przerywanego, niebieskiego obramowania górnego i dolnego.

Protokół żądania jest pokazany poniżej.

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
          },
        },
      }
    }
  ]
}

Formatowanie wiersza nagłówka

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak za pomocą RepeatCellRequest sformatować wiersz nagłówka w arkuszu. Pierwsze żądanie aktualizuje kolor tekstu, kolor tła, rozmiar czcionki, wyrównanie tekstu i pogrubia tekst. Pominięcie indeksów kolumn w polu range spowoduje sformatowanie całego wiersza. Drugie żądanie dostosowuje właściwości arkusza tak, aby wiersz nagłówka był zamrożony.

Tabela 3 x 3 z sformatowanym wierszem nagłówka w arkuszu.
Rysunek 2. Formatowanie wiersza nagłówka w arkuszu.

Protokół żądania jest pokazany poniżej.

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"
      }
    }
  ]
}

Scalanie komórek

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak za pomocą MergeCellsRequest scalić komórki. Pierwsze żądanie scala zakres A1:B2 w jedną komórkę. Drugie żądanie scala kolumny w zakresie A3:B6, pozostawiając wiersze oddzielone.

Tabela 3 x 3 ze scalonymi komórkami w arkuszu.
Rysunek 3. Scalanie komórek w arkuszu.

Protokół żądania jest pokazany poniżej.

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"
      }
    },
  ]
}

Ustawianie niestandardowego formatu daty i godziny lub formatu dziesiętnego dla zakresu

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak za pomocą RepeatCellRequest zaktualizować komórki, aby miały niestandardowe formaty daty i godziny oraz liczb. Pierwsze żądanie nadaje komórkom w zakresie A1:A10 niestandardowy format daty i godziny hh:mm:ss am/pm, ddd mmm dd yyyy. Przykładowa data i godzina w tym formacie to „02:05:07 PM, Sun Apr 03 2016”.

Drugie żądanie nadaje komórkom w zakresie B1:B10 niestandardowy format liczbowy #,##0.0000, który wskazuje, że liczby powinny być grupowane za pomocą separatorów przecinków, że po przecinku powinny znajdować się 4 cyfry oraz że wszystkie zera wiodące z wyjątkiem jednego powinny zostać usunięte. Na przykład liczba „3.14” jest renderowana jako „3.1400”, a „12345.12345” jako „12,345.1235”.

Więcej informacji znajdziesz w artykule Formaty daty i liczby formatów.

Tabela 3 x 3 z niestandardowymi formatami daty i godziny oraz liczb w arkuszu.
Rysunek 4. Aktualizowanie komórek, aby miały niestandardowe formaty daty i godziny oraz liczb w arkuszu.

Protokół żądania jest pokazany poniżej.

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"
      }
    }
  ]
}