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 korzystających z interfejsu Arkuszy jest też dostępna w interfejsie Sheets API. Przykłady na tej stronie pokazują, jak za pomocą interfejsu Sheets API można wykonywać niektóre typowe operacje na arkuszach kalkulacyjnych.

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 interfejsów API Google, 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 jego adresie URL. 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.

Stosowanie sprawdzania poprawności danych w zakresie

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak użyć SetDataValidationRequest , aby zastosować regułę sprawdzania poprawności danych „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órek

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak użyć CopyPasteRequest , aby skopiować tylko formatowanie z zakresu A1:D10 i wkleić je do zakresu F1:I10 w tym samym arkuszu. Metoda używa wyliczenia PasteTypez PASTE_FORMAT aby wkleić formatowanie z wyłączeniem sprawdzania poprawności danych. Oryginalne wartości w zakresie A1:D10 pozostają bez zmian.

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

Wycinać i wklejać komórki

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak użyć CutPasteRequest. Wycina on zakres A1:D10 i używa PasteType wyliczenia z PASTE_NORMAL aby wkleić jego wartości, formuły, formatowanie i scalenia do zakresu F1:I10 w tym samym arkuszu. Oryginalna zawartość komórek w zakresie źródłowym zostaje 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 spreadsheets.batchUpdate przykładowy kod pokazuje, jak użyć RepeatCellRequest , aby skopiować formułę =FLOOR(A1*PI()) do zakresu B1:D10. Zakres formuły jest automatycznie zwiększany 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 kilkoma specyfikacjami sortowania

Poniższy spreadsheets.batchUpdate przykładowy kod pokazuje, jak użyć SortRangeRequest , aby 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 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"
          }
        ]
      }
    }
  ]
}