Operacje na danych

Interfejs API Arkuszy Google umożliwia wykonywanie różnych operacji na danych w arkuszach kalkulacyjnych. Większość funkcji dostępnych dla użytkowników korzystających z interfejsu Arkuszy jest też dostępna w interfejsie Arkuszy Google. Przykłady na tej stronie pokazują, jak za pomocą interfejsu API Arkuszy można wykonywać typowe operacje na arkuszach kalkulacyjnych.

Mają one postać żądań HTTP, które mają być neutralne pod względem języka. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach przy użyciu bibliotek klienta interfejsu API Google, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.

W tych przykładach obiekty zastępcze SPREADSHEET_ID i SHEET_ID wskazują, gdzie należy je umieścić. Identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza kalkulacyjnego. Identyfikator arkusza możesz uzyskać, korzystając z metody spreadsheets.get. Zakresy są określane w notacji A1. Przykładowy zakres to Arkusz1!A1:D5.

Zastosuj sprawdzanie poprawności danych do zakresu

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak użyć SetDataValidationRequest do zastosowania reguły sprawdzania poprawności danych, gdzie „wartość > 5” do każdej komórki w zakresie A1:D10.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "setDataValidation": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "rule": {
          "condition": {
            "type": "NUMBER_GREATER",
            "values": [
              {
                "userEnteredValue": "5"
              }
            ]
          },
          "inputMessage": "Value must be > 5",
          "strict": true
        }
      }
    }
  ]
}

Kopiowanie i wklejanie formatowania komórki

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak użyć CopyPasteRequest, aby skopiować formatowanie tylko z zakresu A1:D10 i wkleić je w zakresie F1:I10 w tym samym arkuszu. Ta metoda korzysta z wyliczenia PasteType z PASTE_FORMAT, aby wkleić tylko formatowanie i weryfikację danych. Pierwotne wartości z zakresu A1:D10 pozostają niezmienione.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "copyPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 5,
          "endColumnIndex": 9
        },
        "pasteType": "PASTE_FORMAT",
        "pasteOrientation": "NORMAL"
      }
    }
  ]
}

Wytnij i wklej komórki

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak użyć CutPasteRequest. Przecina zakres A1:D10 i wykorzystuje wyliczenie PasteType z PASTE_NORMAL, aby wkleić wartości, formuły, formatowanie i scalanie do zakresu F1:I10 w tym samym arkuszu. Zawartość komórek oryginalnego zakresu źródłowego zostanie usunięta.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "cutPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "rowIndex": 0,
          "columnIndex": 5
        },
        "pasteType": "PASTE_NORMAL"
      }
    }
  ]
}

Powtarzanie formuły w zakresie

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak za pomocą RepeatCellRequest skopiować formułę =FLOOR(A1*PI()) do zakresu B1:D10. Zakres formuły zmienia się automatycznie w przypadku każdego wiersza i kolumny w zakresie, zaczynając od lewej górnej komórki. Na przykład komórka B1 zawiera formułę =FLOOR(A1*PI()), a komórka D6 – formułę =FLOOR(C6*PI()).

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": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Sortowanie zakresu z użyciem wielu specyfikacji sortowania

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak za pomocą filtra SortRangeRequest posortować zakres A1:D10 – najpierw według kolumny B w kolejności rosnącej, a potem według kolumny C w kolejności malejącej, a następnie według kolumny D w kolejności malejącej.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "sortRange": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "sortSpecs": [
          {
            "dimensionIndex": 1,
            "sortOrder": "ASCENDING"
          },
          {
            "dimensionIndex": 2,
            "sortOrder": "DESCENDING"
          },
          {
            "dimensionIndex": 3,
            "sortOrder": "DESCENDING"
          }
        ]
      }
    }
  ]
}