Interfejs API Arkuszy Google umożliwia tworzenie i aktualizowanie wykresów w arkuszach kalkulacyjnych niezbędną. Przykłady na tej stronie pokazują, jak osiągnąć operacji na wykresach za pomocą interfejsu Arkuszy API.
Przykłady te są przedstawione w formie żądań HTTP, które stanowią język. i nie mam zdania. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsów API Google, przeczytaj artykuł Aktualizacja arkusze kalkulacyjne.
W tych przykładach zmienne SPREADSHEET_ID i SHEET_ID
wskazuje, gdzie należy je podać. Arkusz kalkulacyjny można znaleźć
ID w adresie URL arkusza kalkulacyjnego. Możesz uzyskać
identyfikator arkusza za pomocą funkcji
spreadsheets.get
.
zakresy określa się w notacji A1. An
przykładowy zakres to Arkusz1!A1:D5.
Dodatkowo obiekt zastępczy CHART_ID wskazuje identyfikator danego
wykres. Możesz ustawić ten identyfikator podczas tworzenia wykresu za pomocą interfejsu Arkuszy API
lub zezwól interfejsowi Arkusze API na ich wygenerowanie. Identyfikatory
istniejących wykresów z atrybutem
spreadsheets.get
.
Natomiast zmienna SOURCE_SHEET_ID wskazuje arkusz z do danych źródłowych. W tych przykładach jest to tabela w sekcji Źródło wykresu danych.
Dane źródłowe wykresu
W tych przykładach załóżmy, że używany arkusz kalkulacyjny ma następujące źródło danych w pierwszym arkuszu („Arkusz1”). Ciągi w pierwszym wierszu to etykiety dla: poszczególnych kolumn. Aby zobaczyć przykłady odczytywania innych arkuszy w przeczytaj opis A1.
A | B | C | D | E | |
1 | Numer modelu | Dział sprzedaży – styczeń | Sprzedaż – luty | Dział sprzedaży – marzec | Łączna sprzedaż |
2 | D-01X | 68 | 74 | 60 | 202 |
3 | FR-0B1 | 97 | 76 | 88 | 261 |
4 | P-034 | 27 | 49 | 32 | 108 |
5 | P-105 | 46 | 44 | 67 | 157 |
6 | W-11 | 75 | 68 | 87 | 230 |
7 | W-24 | 74 | 52 | 62 | 188 |
Dodaj wykres kolumnowy
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak korzystać z
AddChartRequest
aby utworzyć wykres kolumnowy z danych źródłowych i umieścić go w nowym arkuszu.
wykona te czynności, aby skonfigurować wykres:
- Ustawia typ wykresu jako wykres kolumnowy.
- Dodaje legendę na dole wykresu.
- Określa tytuły wykresu i osi.
- Konfiguruje 3 serie danych reprezentujące sprzedaż w 3 różnych miesiącach, a przy użyciu domyślnego formatowania i kolorów.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "COLUMN", "legendPosition": "BOTTOM_LEGEND", "axis": [ { "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "position": "LEFT_AXIS", "title": "Sales" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "LEFT_AXIS" } ], "headerCount": 1 } }, "position": { "newSheet": true } } } } ] }
To żądanie tworzy w nowym arkuszu wykres podobny do tego:
Dodawanie wykresu kołowego
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak korzystać z
AddChartRequest
aby utworzyć wykres kołowy 3D na podstawie danych źródłowych. Żądanie wykonuje te działania, aby:
skonfiguruj wykres:
- Określa tytuł wykresu.
- Dodaje legendę po prawej stronie wykresu.
- Ustawia wykres jako wykres kołowy 3D. Pamiętaj, że wykresy kołowe 3D nie mogą zawierać elementów „dziura w pierścieniu” na środku wykresu kołowego.
- Ustawia serię danych na wykresie jako łączną sprzedaż dla każdego numeru modelu.
- Zakotwicza wykres w komórce C3 arkusza określonego przez SHEET_ID. z przesunięciem 50 pikseli w kierunkach X i Y.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Total Sales", "pieChart": { "legendPosition": "RIGHT_LEGEND", "threeDimensional": true, "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } }, "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 4, "endColumnIndex": 5 } ] } }, } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SHEET_ID, "rowIndex": 2, "columnIndex": 2 }, "offsetXPixels": 50, "offsetYPixels": 50 } } } } } ] }
Żądanie tworzy wykres podobny do tego:
Możesz też zaktualizować wartość legendPosition za pomocą RIGHT_LEGEND do LABELED_LEGEND w żądaniu, tak aby wartości legendy były połączone z wycinkami wykresu kołowego.
'legendPosition': 'LABELED_LEGEND',
Zaktualizowane żądanie utworzy wykres podobny do tego:
Dodaj wykres liniowy, używając wielu zakresów, które nie sąsiadują ze sobą
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak używać parametru
AddChartRequest
aby utworzyć wykres liniowy na podstawie danych źródłowych i umieścić go w arkuszu źródłowym.
Zaznaczenie zakresów, które nie przylegają do siebie, może zostać użyte do wykluczenia wierszy z
ChartSourceRange
Żądanie wykonuje te działania, aby skonfigurować wykres:
- Ustawia typ wykresu jako wykres liniowy.
- Określa tytuł poziomej osi X.
- Konfiguruje serię danych reprezentującą sprzedaż. Ustawia komórki A1:A3 i A6:A7 jako
domain
, B1:B3 i B6:B7 jakoseries
, z domyślnym formatowaniem i kolorami. Zakresy określa się za pomocą funkcji A1 w adresie URL żądania. - Zakotwicza wykres w komórce H8 arkusza określonego przez funkcję SHEET_ID.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "basicChart": { "chartType": "LINE", "domains": [ { "domain": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID } ] } } } ] } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SOURCE_SHEET_ID, "rowIndex": 8, "columnIndex": 8 } } } } } } ] }
To żądanie tworzy w nowym arkuszu wykres podobny do tego:
Usuwanie wykresu
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak używać parametru
DeleteEmbeddedObjectRequest
aby usunąć wykres określony przez CHART_ID.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Edytowanie właściwości wykresu
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak używać parametru
UpdateChartSpecRequest
aby edytować wykres utworzony w przepisie Dodaj wykres kolumnowy,
modyfikacji danych, typu i wyglądu. Podzbiorów właściwości wykresu nie może być
zmienianych indywidualnie. Aby wprowadzić zmiany, musisz wypełnić całe pole spec
dzięki UpdateChartSpecRequest
. Zasadniczo edytowanie specyfikacji wykresu
wymaga wymiany.
To żądanie aktualizuje pierwotny wykres (określony przez CHART_ID):
- Ustawia typ wykresu na
BAR
. - Przenosi legendę na prawo od wykresu.
- Odwraca osie tak, że wartość „Sprzedaż” znajduje się na dolnej osi, a „Numery modeli” jest na lewej osi.
- Określa format tytułu osi: 24-punktowa, pogrubienie i kursywa.
- Usunięcie modelu „W-24” dane z wykresu (wiersz 7 w źródle wykresu dane).
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateChartSpec": { "chartId": CHART_ID, "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "BAR", "legendPosition": "RIGHT_LEGEND", "axis": [ { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "BOTTOM_AXIS", "title": "Sales" }, { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "LEFT_AXIS", "title": "Model Numbers" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "BOTTOM_AXIS" } ], "headerCount": 1 } } } } ] }
Po przesłaniu prośby wykres będzie wyglądał tak:
Przenoszenie wykresu lub zmiana jego rozmiaru
Poniżej
spreadsheets.batchUpdate
przykładowy kod pokazuje, jak używać parametru
UpdateEmbeddedObjectPositionRequest
aby przenieść wykres lub zmienić jego rozmiar. Po przesłaniu żądania wykres określony przez funkcję CHART_ID
to:
- Zakotwiczony do komórki A5 oryginalnego arkusza.
- Przesunięcie w kierunku X o 100 pikseli.
- Zmieniono rozmiar do 1200 na 742 pikseli (domyślny rozmiar wykresu to 600 x 371 pikseli).
W żądaniu zmienia się tylko właściwości określone za pomocą parametru fields
.
Inne właściwości (np. offsetYPixels
) zachowują oryginalne wartości.
Protokół żądania jest widoczny poniżej.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateEmbeddedObjectPosition": { "objectId": CHART_ID, "newPosition": { "overlayPosition": { "anchorCell": { "rowIndex": 4, "columnIndex": 0 }, "offsetXPixels": 100, "widthPixels": 1200, "heightPixels": 742 } }, "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels" } } ] }
Odczytywanie danych z wykresu
Poniżej
spreadsheets.get
– przykładowy kod
pokazuje, jak pobrać dane wykresu z arkusza kalkulacyjnego. Parametr zapytania fields
określa, że powinny zostać zwrócone tylko dane wykresu.
Odpowiedź na wywołanie tej metody jest
spreadsheet
który zawiera tablicę
sheet
obiektów. Dowolne wykresy
znajdujące się w arkuszu są reprezentowane w
sheet
. Jeśli
jest ustawione na wartość domyślną, jest ono pomijane w odpowiedzi.
W tym przykładzie pierwszy arkusz (SOURCE_SHEET_ID) nie zawiera żadnych wykresów, więc zwracana jest pusta para nawiasów klamrowych. Drugi arkusz zawiera wykres utworzony za pomocą opcji Dodaj wykres kolumnowy itp.
Protokół żądania jest widoczny poniżej.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{ "sheets": [ {}, { "charts": [ { "chartId": CHART_ID, "position": { "sheetId": SHEET_ID }, "spec": { "basicChart": { "axis": [ { "format": { "bold": false, "italic": false }, "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "format": { "bold": false, "italic": false }, "position": "LEFT_AXIS", "title": "Sales" } ], "chartType": "COLUMN", "domains": [ { "domain": { "sourceRange": { "sources": [ { "endColumnIndex": 1 "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 0, "startRowIndex": 0, } ] } } } ], "legendPosition": "BOTTOM_LEGEND", "series": [ { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 2, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 1, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 3, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 2, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 4, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 3, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" } ] }, "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS", "title": "Model Q1 Sales", }, } ] } ] }