Operacje na danych

Interfejs Google Sheets API umożliwia manipulowanie danymi w arkuszach kalkulacyjnych na różne sposoby. Większość funkcji dostępnych dla użytkowników pracujących w interfejsie Arkuszy jest też dostępna w interfejsie Arkuszy. Przykłady na tej stronie pokazują, jak za pomocą interfejsu Arkuszy Google API wykonywać niektóre typowe operacje na arkuszach kalkulacyjnych.

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 za pomocą notacji A1. Przykładowy zakres to Arkusz1!A1:D5.

Stosowanie sprawdzania poprawności danych do zakresu

Poniższy przykładowy kodspreadsheets.batchUpdate pokazuje, jak za pomocąSetDataValidationRequest zastosować regułę weryfikacji danych „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órki

Poniższy 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 wartością PASTE_FORMAT, aby wkleić tylko formatowanie i reguły sprawdzania poprawności danych. Oryginalne wartości w komórkach A1:D10 pozostają bez zmian.

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

Poniższy przykładowy kod spreadsheets.batchUpdate pokazuje, jak używać CutPasteRequest. Wycina zakres A1:D10 i używa wyliczenia PasteType z wartością PASTE_NORMAL, aby wkleić wartości, formuły, formatowanie i scalenia do zakresu F1:I10 w tym samym arkuszu. Zawartość komórek pierwotnego 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ć metody RepeatCellRequest do skopiowania formuły =FLOOR(A1*PI()) do zakresu B1:D10. Zakres formuły automatycznie zwiększa się 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 zawiera formułę =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 wieloma specyfikacjami sortowania

Poniższy przykładowy kodspreadsheets.batchUpdate pokazuje, jak za pomocą funkcjiSortRangeRequest posortować zakres A1:D10 najpierw według kolumny B w kolejności rosnącej, 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 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"
          }
        ]
      }
    }
  ]
}