Maski pól umożliwiają wywołującym interfejs API wyświetlanie listy pól, które powinny być zwracane lub aktualizowane przez żądanie. Użycie FieldMask pozwala interfejsowi API uniknąć niepotrzebnej pracy i zwiększa wydajność. W przypadku metod odczytu i aktualizacji w interfejsie Google Sheets API używana jest maska pola.
Odczytywanie za pomocą maski pola
Arkusz kalkulacyjny może być duży, a często nie potrzebujesz wszystkich części zasobu Spreadsheet
zwracanych przez żądanie odczytu. Możesz ograniczyć zakres danych zwracanych w odpowiedzi interfejsu Google Sheets API za pomocą parametru URL fields
. Aby uzyskać najlepszą wydajność, w odpowiedzi wymień tylko te pola, których potrzebujesz.
Format parametru fields jest taki sam jak kodowanie JSON elementu FieldMask. Krótko mówiąc, różne pola są rozdzielone przecinkami, a pola podrzędne – kropkami. Nazwy pól można podawać w formacie camelCase lub separated_by_underscores. Dla wygody wiele pól podrzędnych tego samego typu można umieścić w nawiasach.
Ten przykład żądaniaspreadsheets.get
używa maski pola, aby pobrać tylko identyfikator arkusza, tytuł,SheetType
iGridProperties
obiektuSheetProperties
we wszystkich arkuszach w arkuszu kalkulacyjnym:sheets.properties(sheetId,title,sheetType,gridProperties)
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)
Odpowiedzią na to wywołanie metody jest obiekt Spreadsheet
zawierający komponenty żądane w masce pola. Uwaga: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" } } ] }
Aktualizowanie za pomocą maski pola
Czasami trzeba zaktualizować tylko niektóre pola w obiekcie, pozostawiając inne pola bez zmian. Żądania aktualizacji w ramach operacji spreadsheets.batchUpdate
używają masek pól, aby poinformować interfejs API, które pola są zmieniane. Żądanie aktualizacji ignoruje wszystkie pola, które nie są określone w masce pola, i pozostawia w nich bieżące wartości.
Możesz też usunąć pole, nie określając go w zaktualizowanej wiadomości, ale dodając je do maski. Spowoduje to usunięcie wartości, która była wcześniej w tym polu.
Składnia masek pól aktualizacji jest taka sama jak w przypadku masek pól odczytu.
W poniższym przykładzie użyto elementu AddSheetRequest
do dodania nowego arkusza typu Grid
, zablokowania pierwszego wiersza i pokolorowania na czerwono karty nowego arkusza:
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 } } } } } ] }