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 z przepisami na formatowanie warunkowe.

Podczas aktualizowania arkusza kalkulacyjnego niektóre rodzaje żądań mogą zwracać odpowiedzi. Są one zwracane w postaci tablicy, a każda odpowiedź zajmuje ten sam indeks co odpowiednie żą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 formie żą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 interfejsu API Google, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.

W tych przykładach symbole zastępcze SPREADSHEET_IDSHEET_ID wskazują miejsca, w których należy podać te identyfikatory. Identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza. Identyfikator arkusza możesz uzyskać za pomocą metody spreadsheets.get. Zakresy są określone w 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. tworzyć zamrożone wiersze, pogrubiać komórki, stosować formatowanie waluty, przeprowadzać weryfikację komórek i ograniczać wartości komórek.

Edytowanie krawędzi komórek

Poniższy przykładowy kodspreadsheets.batchUpdate pokazuje, jak za pomocą metodyUpdateBordersRequest nadać każdej komórce w zakresie A1:F10 przerywaną, niebieską górną i dolną krawędź. Pole innerHorizontal tworzy obramowania poziome 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. Sformatuj każdą komórkę w arkuszu, dodając przerywaną niebieską górną i dolną krawędź.

Protokół żądania jest widoczny 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 przykładowy kodspreadsheets.batchUpdate pokazuje, jak za pomocąRepeatCellRequest sformatować wiersz nagłówka w arkuszu. Pierwsze żądanie aktualizuje kolor tekstu, kolor tła, rozmiar czcionki tekstu i wyrównanie tekstu oraz pogrubia tekst. Pominięcie indeksów kolumn w polu range powoduje 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. Sformatuj wiersz nagłówka w arkuszu.

Protokół żądania jest widoczny 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"
      }
    }
  ]
}

Scal komórki

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak używać metody MergeCellsRequest do scalania komórek. Pierwsze żądanie łączy zakres A1:B2 w jedną komórkę. Druga prośba łączy kolumny w zakresie A3:B6, ale pozostawia wiersze rozdzielone.

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

Protokół żądania jest widoczny 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 liczby dziesiętnej dla zakresu

Poniższy przykładowy kodspreadsheets.batchUpdate pokazuje, jak używaćRepeatCellRequest do aktualizowania komórek, 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: „02:05:07 PM, Sun Apr 03 2016”.

Druga prośba nadaje komórkom w zakresie B1:B10 niestandardowy format liczbowy #,##0.0000, który oznacza, że liczby powinny być grupowane z użyciem przecinków jako separatorów, że po przecinku powinny występować 4 cyfry i ż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 liczba „12345,12345” jako „12 345,1235”.

Więcej informacji znajdziesz w artykule Formaty dat i liczb.

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

Protokół żądania jest widoczny 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"
      }
    }
  ]
}