Operacje na danych

Interfejs API Arkuszy Google umożliwia obsługę danych w arkuszach kalkulacyjnych na różne sposoby. Większość funkcji dostępnych dla użytkowników korzystających z interfejsu Arkuszy można również wykorzystać za pomocą interfejsuSheets API. Przykłady na tej stronie pokazują, jak za pomocą interfejsu Arkuszy Google można wykonać niektóre typowe operacje na arkuszach kalkulacyjnych.

Przykłady te mają postać żądań HTTP, które nie wpływają na język. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu API Google, przeczytaj artykuł o aktualizowaniu arkuszy kalkulacyjnych.

W tych przykładach obiekty zastępcze SPREADSHEET_ID i SHEET_ID wskazują, gdzie należy podać te identyfikatory. Ten identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza kalkulacyjnego. Identyfikator arkusza możesz uzyskać za pomocą metody spreadsheets.get. Zakresy określa się 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 za pomocą funkcji SetDataValidationRequest zastosować regułę sprawdzania poprawności danych, gdzie „wartość > 5” do każdej komórki w zakresie A1:D10.

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

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak użyć CopyPasteRequest do skopiowania formatowania tylko w zakresie A1:D10 i wklejenia go do zakresu F1:I10 w tym samym arkuszu. Metoda używa wyliczenia PasteType z PASTE_FORMAT tylko do wklejenia formatowania i walidacji danych. Pierwotne wartości w kolumnach A1:D10 pozostają niezmienione.

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

Z przykładowego kodu spreadsheets.batchUpdate dowiesz się, jak korzystać z CutPasteRequest. Skraca zakres A1:D10 i używa wyliczenia PasteType z PASTE_NORMAL do wklejenia wartości, formuł, formatowania oraz scalania do zakresu F1:I10 w tym samym arkuszu. Pierwotna zawartość komórki zakresu źródłowego zostanie usunięta.

Protokół żądania jest widoczny 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 użyć funkcji RepeatCellRequest do skopiowania formuły =FLOOR(A1*PI()) do zakresu B1:D10. Zakres formuły automatycznie zwiększa się dla 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 – =FLOOR(C6*PI()).

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

Sortowanie zakresu z użyciem wielu specyfikacji sortowania

Z przykładowego kodu spreadsheets.batchUpdate dowiesz się, jak za pomocą funkcji SortRangeRequest posortować zakres A1:D10 najpierw według kolumny B w kolejności rosnącej, a następnie według kolumny C w kolejności malejącej, a następnie według kolumny D w kolejności malejącej.

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