Używanie masek pól

Maski pól umożliwiają wywołującym interfejs API listę pól, które żądanie powinno zwrócić lub zaktualizować. Użycie FieldMask pozwala interfejsowi API uniknąć niepotrzebnej pracy i zwiększa wydajność. Maska pola służy zarówno do odczytu, jak i do aktualizacji w interfejsie API Arkuszy Google.

Odczyt z maską pola

Arkusze mogą być duże i często nie potrzebujesz wszystkich części zasobu Spreadsheet zwracanych w odpowiedzi na żądanie odczytu. Możesz ograniczyć zawartość zwracaną w odpowiedzi interfejsu Arkuszy Google za pomocą parametru adresu URL fields. Aby uzyskać najlepsze wyniki, wymień w odpowiedzi tylko te pola, których potrzebujesz.

Format parametru fields jest taki sam jak kodowanie JSON elementu FieldMask. Krótko mówiąc: wiele różnych pól jest rozdzielonych przecinkami, a pola podrzędne rozdzielone kropkami. Nazwy pól można podawać w formacie camelCase lub Separate_by_underscores. Dla wygody w nawiasach można podać kilka pól podrzędnych tego samego typu.

Ten przykład żądania spreadsheets.get używa maski pola sheets.properties(sheetId,title,sheetType,gridProperties) do pobrania tylko identyfikatora arkusza, tytułu SheetType i GridProperties obiektu SheetProperties we wszystkich arkuszach w arkuszu kalkulacyjnym:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)

Odpowiedź na to wywołanie metody to obiekt Spreadsheet zawierający komponenty żądane w masce pola. Pamiętaj, że sheetType=OBJECT nie zawiera gridProperties:

{
  "sheets": [
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "TITLE",
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 1000,
          "columnCount": 25
        }
      }
    },
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "TITLE",
        "sheetType": "OBJECT"
      }
    }
  ]
}

Zaktualizuj za pomocą maski pola

Czasami wystarczy zaktualizować tylko niektóre pola w obiekcie, a pozostałe pola pozostawić bez zmian. Żądania aktualizacji w operacji spreadsheets.batchUpdate wykorzystują maski pól, aby informować interfejs API, które pola są zmieniane. Żądanie aktualizacji ignoruje wszystkie pola, które nie zostały określone w masce pola, i pozostawia je z bieżącymi wartościami.

Aby cofnąć ustawienie pola, możesz też nie określać go w zaktualizowanej wiadomości, tylko dodać pole do maski. Powoduje to wyczyszczenie wartości, której poprzednio miało pole.

Składnia masek pól aktualizacji jest taka sama jak masek do odczytu.

Poniższy przykład pokazuje użycie właściwości AddSheetRequest do dodania nowego arkusza typu Grid, zablokowania pierwszego wiersza i pokolorowania karty nowego arkusza na czerwono:

POST https://sheets.googleapis.com/v1/spreadsheets/spreadsheetId:batchUpdate
{
  "spreadsheetId": "SPREADSHEET_ID",
  "replies": [
    {
      "addSheet": {
        "properties": {
          "sheetId": SHEET_ID,
          "title": "TITLE",
          "index": 6,
          "sheetType": "GRID",
          "gridProperties": {
            "rowCount": 1000,
            "columnCount": 26,
            "frozenRowCount": 1
          },
          "tabColor": {
            "red": 0.003921569
          },
          "tabColorStyle": {
            "rgbColor": {
              "red": 0.003921569
            }
          }
        }
      }
    }
  ]
}