Google Sheets API memungkinkan Anda membuat dan memperbarui bagan dalam {i>spreadsheet<i} sebagai diperlukan. Contoh di halaman ini menggambarkan bagaimana Anda dapat mencapai beberapa operasi diagram dengan Sheets API.
Contoh ini disajikan dalam bentuk permintaan HTTP untuk memilih bahasa netral. Untuk mempelajari cara mengimplementasikan update secara batch dalam berbagai bahasa menggunakan library klien Google API, lihat Memperbarui di spreadsheet.
Dalam contoh ini, placeholder SPREADSHEET_ID dan SHEET_ID
menunjukkan di mana Anda akan memberikan ID tersebut. Anda dapat menemukan spreadsheet
ID di URL spreadsheet. Anda bisa mendapatkan
sheet ID dengan menggunakan
Metode spreadsheets.get
. Tujuan
rentang ditentukan menggunakan notasi A1. Channel
contohnya adalah Sheet1!A1:D5.
Selain itu, placeholder CHART_ID menunjukkan ID
diagram. Anda dapat menetapkan ID ini saat
membuat diagram dengan Sheets API,
atau mengizinkan Sheets API
membuatkannya untuk Anda. Anda bisa mendapatkan ID dari
diagram yang sudah ada dengan
Metode spreadsheets.get
.
Terakhir, placeholder SOURCE_SHEET_ID menunjukkan sheet Anda dengan data sumber. Dalam contoh tersebut, ini adalah tabel yang tercantum di bagian Sumber diagram data Anda.
Data sumber diagram
Untuk contoh-contoh ini, asumsikan {i>spreadsheet <i}yang digunakan memiliki sumber berikut data dalam {i>sheet <i}pertamanya ("Sheet1"). {i>String<i} di baris pertama adalah label untuk tiap kolom. Untuk melihat contoh cara membaca dari {i>sheet<i} lain di spreadsheet Anda, lihat notasi A1.
A | B | C | D | E | |
1 | Nomor Model | Penjualan - Jan | Penjualan - Feb | Penjualan - Mar | Total Penjualan |
2 | H-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 |
Menambahkan diagram kolom
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
AddChartRequest
untuk membuat bagan kolom dari data sumber, menempatkannya di lembar baru. Tujuan
melakukan hal berikut untuk mengonfigurasi diagram:
- Menetapkan jenis diagram sebagai diagram kolom.
- Menambahkan legenda ke bagian bawah diagram.
- Menetapkan judul sumbu dan diagram.
- Mengonfigurasi 3 deret data, yang mewakili penjualan selama 3 bulan yang berbeda, menggunakan warna dan format default.
Protokol permintaan ditampilkan di bawah ini.
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 } } } } ] }
Permintaan tersebut akan membuat sebuah diagram dalam sheet baru seperti ini:
Menambahkan diagram lingkaran
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
AddChartRequest
untuk membuat bagan pai 3D dari data sumber. Permintaan tersebut melakukan hal berikut untuk
mengonfigurasi diagram:
- Menetapkan judul diagram.
- Menambahkan legenda di sebelah kanan diagram.
- Menetapkan diagram sebagai diagram lingkaran 3D. Perhatikan bahwa bagan pai 3D tidak boleh memiliki "lubang donat" di tengah seperti yang bisa dilakukan dalam bagan pai datar.
- Menetapkan seri data diagram sebagai total penjualan untuk setiap nomor model.
- Menambatkan diagram pada sel C3 sheet yang ditentukan oleh SHEET_ID, dengan offset 50 piksel di arah X dan Y.
Protokol permintaan ditampilkan di bawah ini.
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 } } } } } ] }
Permintaan tersebut akan membuat diagram seperti ini:
Atau, Anda juga dapat memperbarui nilai legendPosition dari RIGHT_LEGEND ke LABELED_LEGEND dalam permintaan, sehingga nilai legenda terhubung ke irisan bagan pai.
'legendPosition': 'LABELED_LEGEND',
Permintaan yang diperbarui akan membuat diagram seperti ini:
Menambahkan diagram garis menggunakan beberapa rentang yang tidak berdekatan
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
AddChartRequest
untuk membuat diagram garis dari data sumber, menempatkannya di lembar sumber.
Memilih rentang yang tidak berdekatan dapat
digunakan untuk mengecualikan baris dari
ChartSourceRange
Permintaan tersebut melakukan hal berikut untuk mengonfigurasi diagram:
- Menetapkan jenis diagram sebagai diagram garis.
- Menetapkan judul sumbu x horizontal.
- Mengonfigurasi deret data yang mewakili penjualan. Ini mengatur A1:A3 dan A6:A7 sebagai
domain
, dan B1:B3 dan B6:B7 sebagaiseries
, saat menggunakan pemformatan dan warna {i>default<i}. Rentang ditentukan menggunakan A1 notasi di URL permintaan. - Menaruh diagram pada sel H8 pada sheet yang ditentukan oleh SHEET_ID.
Protokol permintaan ditampilkan di bawah ini.
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 } } } } } } ] }
Permintaan tersebut akan membuat sebuah diagram dalam sheet baru seperti ini:
Menghapus diagram
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
DeleteEmbeddedObjectRequest
untuk menghapus diagram yang ditentukan oleh CHART_ID.
Protokol permintaan ditampilkan di bawah ini.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Mengedit properti diagram
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
UpdateChartSpecRequest
untuk mengedit diagram yang dibuat dalam urutan langkah Tambahkan diagram kolom,
memodifikasi data, jenis, dan tampilannya. Subset properti diagram tidak boleh
diubah satu per satu. Untuk mengedit, Anda harus menyediakan seluruh kolom spec
dengan UpdateChartSpecRequest
. Pada dasarnya, mengedit spesifikasi bagan
perlu menggantinya dengan yang baru.
Permintaan berikut memperbarui diagram asli (ditentukan oleh CHART_ID):
- Menetapkan jenis diagram ke
BAR
. - Memindahkan legenda ke kanan diagram.
- Membalik sumbu-sumbu sehingga "Sales" ada di sumbu bawah dan "Nomor Model" berada di sumbu kiri.
- Menetapkan format judul sumbu menjadi font 24 titik, tebal, dan miring.
- Menghapus "W-24" data dari diagram (baris 7 di sumber diagram data).
Protokol permintaan ditampilkan di bawah ini.
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 } } } } ] }
Setelah permintaan, diagram akan muncul seperti ini:
Memindahkan atau mengubah ukuran diagram
Hal berikut
spreadsheets.batchUpdate
contoh kode menunjukkan cara menggunakan
UpdateEmbeddedObjectPositionRequest
untuk memindahkan
dan mengubah ukuran diagram. Setelah permintaan dibuat, diagram ditentukan oleh CHART_ID
adalah:
- Ditambatkan ke sel A5 di sheet aslinya.
- Offset ke arah X sebesar 100 piksel.
- Diubah ukurannya menjadi 1200 x 742 piksel (ukuran default untuk diagram adalah 600 x 371 piksel).
Permintaan tersebut hanya mengubah properti yang ditentukan dengan parameter fields
.
Properti lain (seperti offsetYPixels
) mempertahankan nilai aslinya.
Protokol permintaan ditampilkan di bawah ini.
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" } } ] }
Baca data diagram
Hal berikut
Contoh kode spreadsheets.get
menunjukkan cara mendapatkan data diagram dari sebuah {i>spreadsheet<i}. Parameter kueri fields
menentukan bahwa hanya data diagram yang akan ditampilkan.
Respons terhadap panggilan metode ini adalah
spreadsheet
, yang berisi array
Objek sheet
. Diagram apa pun
yang ada di {i>sheet <i}
direpresentasikan dalam
Objek sheet
. Jika
kolom respons disetel ke nilai default, dan akan dihilangkan dari respons.
Dalam contoh ini, sheet pertama (SOURCE_SHEET_ID) tidak memiliki diagram, sehingga sepasang tanda kurung kurawal kosong ditampilkan. Lembar kedua memiliki diagram yang dibuat dengan Add a column chart, dan tidak menyertakan lainnya.
Protokol permintaan ditampilkan di bawah ini.
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", }, } ] } ] }