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 również dostępna za pomocą interfejsu Sheets API. Przykłady na tej stronie pokazują, jak wykonywać typowe operacje na arkuszach kalkulacyjnych za pomocą interfejsu Sheets API.

Przykłady te są przedstawione w formie żądań HTTP, aby były neutralne językowo. Aby dowiedzieć się, jak za pomocą bibliotek klienta interfejsu API Google wdrożyć zbiorcze aktualizowanie w różnych językach, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.

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

Stosowanie sprawdzania poprawności danych do zakresu

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak za pomocą funkcji SetDataValidationRequestzastosować regułę walidacji danych, w której „wartość > 5”, do każdej komórki w zakresie A1:D10.

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

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak za pomocą funkcji CopyPasteRequest skopiować formatowanie tylko z zakresu A1:D10 i wkleić je w zakresie F1:I10 na tym samym arkuszu. Metoda używa enumeracji PasteType z PASTE_FORMAT, aby wkleić tylko formatowanie i sprawdzanie poprawności danych. Pierwotne wartości w komórkach A1:D10 pozostają bez zmian.

Protokół żądania przedstawiono 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ć funkcji CutPasteRequest. Wycina on zakres A1:D10 i używa enumeracji PasteType z PASTE_NORMAL, aby wkleić wartości, formuły, formatowanie i scalić je z zakresem F1:I10 na tym samym arkuszu. Zawartość komórki oryginalnego zakresu źródłowego zostaje usunięta.

Protokół żądania przedstawiono 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ą funkcji RepeatCellRequest skopiować formułę =FLOOR(A1*PI()) do zakresu B1:D10. Zakres formuły automatycznie zwiększa się o każdy wiersz i kolumnę w zakresie, zaczynając od lewego górnego rogu komórki. Na przykład komórka B1 zawiera formułę =FLOOR(A1*PI()), a komórka D6 zawiera formułę =FLOOR(C6*PI()).

Protokół żądania przedstawiono 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 kod spreadsheets.batchUpdate pokazuje, jak za pomocą funkcji SortRangeRequest 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 na koniec według kolumny D w kolejności malejącej.

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