Google Sheets API, e-tablolarda gerektiği şekilde grafikler oluşturmanıza ve bunları güncellemenize olanak tanır. Bu sayfadaki örnekler, Sheets API ile bazı yaygın grafik işlemlerini nasıl gerçekleştirebileceğinizi gösterir.
Bu örnekler, dilden bağımsız olarak HTTP istekleri şeklinde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme bölümüne bakın.
Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nerede sağlayacağınızı belirtir. E-tablo kimliğini e-tablonun URL'sinde bulabilirsiniz. Sayfa kimliğini, spreadsheets.get
yöntemini kullanarak alabilirsiniz. Aralıklar, A1 gösterimi kullanılarak belirtilir. Örneğin Sayfa1!A1:D5.
Ayrıca CHART_ID yer tutucusu, belirli bir grafiğin kimliğini de belirtir. E-Tablolar API ile grafik oluştururken bu kimliği ayarlayabilir veya Sheets API'nin sizin için bir grafik oluşturmasına izin verebilirsiniz. Mevcut grafiklerin kimliklerini spreadsheets.get
yöntemiyle alabilirsiniz.
Son olarak SOURCE_SHEET_ID yer tutucusu, kaynak verilerin bulunduğu sayfanızı belirtir. Aşağıdaki örneklerde bu, Grafik kaynak verileri altında listelenen tablodur.
Grafik kaynağı verileri
Bu örneklerde, kullanılan e-tablonun ilk sayfasında aşağıdaki kaynak verilerin ("Sayfa1") bulunduğunu varsayalım. İlk satırdaki dizeler, bağımsız sütunlara ilişkin etiketlerdir. E-tablonuzdaki diğer sayfalardaki bilgileri nasıl okuyacağınıza dair örnekleri görmek için A1 gösterimine bakın.
CEVAP | B | C | G | E | |
1 | Model Numarası | Satış - Ocak | Satış - Şub | Satış - Mart | Toplam Satış |
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 |
Sütun grafik ekleme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, kaynak verilerden sütun grafik oluşturmak ve bu grafiği yeni bir sayfaya yerleştirmek için AddChartRequest
öğesinin nasıl kullanılacağı gösterilmektedir. İstek, grafiği yapılandırmak için aşağıdakileri yapar:
- Grafik türünü sütun grafik olarak ayarlar.
- Grafiğin alt kısmına gösterge ekler.
- Grafik ve eksen başlıklarını ayarlar.
- Varsayılan biçimlendirmeyi ve renkleri kullanarak 3 farklı ay boyunca satışları temsil eden 3 veri serisi yapılandırır.
İstek protokolü aşağıda gösterilmiştir.
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 } } } } ] }
İstek, aşağıdaki gibi yeni bir sayfada bir grafik oluşturur:
Pasta grafik ekle
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, kaynak verilerden 3D pasta grafik oluşturmak için AddChartRequest
öğesinin nasıl kullanılacağı gösterilmektedir. İstek, grafiği yapılandırmak için şunları yapar:
- Grafik başlığını ayarlar.
- Grafiğin sağına bir gösterge ekler.
- Grafiği 3D pasta grafik olarak ayarlar. 3D pasta grafiklerin merkezinde, düz pasta grafiklerde olduğu gibi bir "halka deliği" bulunamaz.
- Grafik veri dizisini, her model numarası için toplam satış olarak ayarlar.
- Grafiği, SHEET_ID tarafından belirtilen sayfanın C3 hücresine sabitler. Hem X hem de Y yönünde 50 piksel ofset sağlar.
İstek protokolü aşağıda gösterilmiştir.
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 } } } } } ] }
İstek aşağıdaki gibi bir grafik oluşturur:
Alternatif olarak, gösterge değerlerinin pasta grafik dilimlerine bağlanması için istekte RIGHT_LEGEND olan emailPosition değerini LABELED_LEGEND olarak da güncelleyebilirsiniz.
'legendPosition': 'LABELED_LEGEND',
Güncellenen istek aşağıdaki gibi bir grafik oluşturur:
Bitişik olmayan birden çok aralık kullanarak çizgi grafik ekleme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, kaynak verilerden çizgi grafik oluşturmak için AddChartRequest
öğesinin nasıl kullanılacağı gösterilmektedir.
Bitişik olmayan aralıkları seçmek, ChartSourceRange
içindeki satırları hariç tutmak için kullanılabilir.
İstek, grafiği yapılandırmak için şunları yapar:
- Grafik türünü çizgi grafik olarak ayarlar.
- Yatay x ekseni başlığını ayarlar.
- Satışları temsil eden bir veri serisini yapılandırır. Varsayılan biçimlendirme ve renkleri kullanırken A1:A3 ve A6:A7'yi
domain
, B1:B3 ve B6:B7'yi iseseries
olarak ayarlar. Aralıklar, istek URL'sinde A1 gösterimi kullanılarak belirtilir. - Grafiği, SHEET_ID tarafından belirtilen sayfanın H8 hücresine sabitler.
İstek protokolü aşağıda gösterilmiştir.
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 } } } } } } ] }
İstek, aşağıdaki gibi yeni bir sayfada bir grafik oluşturur:
Grafik silme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, CHART_ID tarafından belirtilen bir grafiği silmek için DeleteEmbeddedObjectRequest
öğesinin nasıl kullanılacağı gösterilmektedir.
İstek protokolü aşağıda gösterilmiştir.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Bir grafiğin özelliklerini düzenleme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, Sütun grafik ekle tarifinde oluşturulan grafiği veri, tür ve görünüm değişikliklerinde düzenlemek için UpdateChartSpecRequest
öğesinin nasıl kullanılacağı gösterilmektedir. Grafik özelliklerinin alt kümeleri tek tek değiştirilemez. Düzenleme yapmak için spec
alanının tamamına bir UpdateChartSpecRequest
sağlamanız gerekir. Esasen, bir grafik spesifikasyonunu düzenlemek
yeni bir spesifikasyonla değiştirilmesini gerektirir.
Aşağıdaki istek orijinal grafiği günceller (CHART_ID tarafından belirtilir):
- Grafik türünü
BAR
olarak ayarlar. - Göstergeyi grafiğin sağına taşır.
- Eksenleri, "Satış" alt eksende ve "Model Numaraları" sol eksende olacak şekilde tersine çevirir.
- Eksen başlığı biçimini 24 punto yazı tipi, kalın ve italik olacak şekilde ayarlar.
- "W-24" verilerini grafikten kaldırır (grafik kaynak verilerindeki 7. satır).
İstek protokolü aşağıda gösterilmiştir.
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 } } } } ] }
İstekten sonra grafik şu şekilde görünür:
Grafiği taşıma veya yeniden boyutlandırma
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, bir grafiği taşımak ve yeniden boyutlandırmak için UpdateEmbeddedObjectPositionRequest
öğesinin nasıl kullanılacağı gösterilmektedir. İstekten sonra, CHART_ID tarafından belirtilen grafik şöyle olur:
- Orijinal sayfasının A5 hücresine sabitlenmiş.
- X yönünde 100 piksel ofset.
- 1.200 x 742 piksel (bir grafik için varsayılan boyut 600 x 371 pikseldir) olarak yeniden boyutlandırılmıştır.
İstek yalnızca fields
parametresiyle belirtilen özellikleri değiştirir.
Diğer özellikler (offsetYPixels
gibi) orijinal değerlerini korur.
İstek protokolü aşağıda gösterilmiştir.
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" } } ] }
Grafik verilerini okuma
Aşağıdaki spreadsheets.get
kod örneğinde, grafik verilerinin bir e-tablodan nasıl alınacağı gösterilmektedir. fields
sorgu parametresi, yalnızca grafik verilerinin döndürülmesi gerektiğini belirtir.
Bu yöntem çağrısına verilen yanıt, sheet
nesnelerinden oluşan bir dizi içeren spreadsheet
nesnesidir. Bir sayfada bulunan tüm grafikler sheet
nesnesinde temsil edilir. Bir yanıt alanı varsayılan değere ayarlanırsa yanıttan çıkarılır.
Bu örnekte, ilk sayfada (SOURCE_SHEET_ID) hiç grafik bulunmadığından boş bir küme parantezi çifti döndürülür. İkinci sayfada Sütun grafik ekle tarafından oluşturulan grafik bulunur ve başka hiçbir öğe bulunmaz.
İstek protokolü aşağıda gösterilmiştir.
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", }, } ] } ] }