Google Sheets API, e-tablolarda gerektiği gibi grafik oluşturmanıza ve güncellemenize olanak tanır. Bu sayfadaki örneklerde, Sheets API ile bazı yaygın grafik işlemlerini nasıl gerçekleştirebileceğiniz gösterilmektedir.
Bu örnekler, dilden bağımsız olması için HTTP istekleri şeklinde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme işlemini nasıl uygulayacağınızı öğrenmek için E-tabloları güncelleme başlıklı makaleye bakın.
Bu örneklerde, SPREADSHEET_ID ve SHEET_ID yer tutucuları
bu kimlikleri nerede sağlayacağınızı gösterir. E-tablo kimliğini e-tablo URL'sinde bulabilirsiniz.
Sayfa kimliğini spreadsheets.get
yöntemini kullanarak alabilirsiniz. Aralıklar A1 gösterimi kullanılarak belirtilir. Örnek bir aralık: Sayfa1!A1:D5.
Ayrıca, CHART_ID yer tutucusu belirli bir grafiğin kimliğini gösterir. Bu kimliği E-Tablolar API'si ile grafik oluştururken ayarlayabilir veya E-Tablolar API'nin sizin için bir kimlik oluşturmasına izin verebilirsiniz. Mevcut grafiklerin kimliklerini spreadsheets.get
yöntemiyle alabilirsiniz.
Son olarak, yer tutucu SOURCE_SHEET_ID, kaynak verileri içeren sayfanızı gösterir. Bu örneklerde, Grafik kaynak verileri altında listelenen tablo budur.
Grafik kaynak verileri
Bu örneklerde, kullanılan e-tablonun ilk sayfasında ("Sayfa1") aşağıdaki kaynak verilerin bulunduğunu varsayalım. İlk satırdaki dizeler, sütunların etiketleridir. E-tablonuzdaki diğer sayfalardan nasıl okuma yapılacağına dair örnekleri görmek için A1 gösterimi başlıklı makaleyi inceleyin.
A | B | C | D | E | |
1 | Model Numarası | Satış - Ocak | Satış - Şubat | 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 grafiği oluşturmak ve bunu yeni bir sayfaya yerleştirmek için
AddChartRequest
işlevinin 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 en altına bir açıklama ekler.
- Grafik ve eksen başlıklarını ayarlar.
- Varsayılan biçimlendirme ve renkleri kullanarak 3 farklı aya ait satışları temsil eden 3 veri serisi yapılandırır.
İstek protokolü aşağıda gösterilmektedir.
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, yeni bir sayfada aşağıdaki gibi bir grafik oluşturur:
Pasta grafik ekleme
Aşağıdaki
spreadsheets.batchUpdate
kod örneğinde, kaynak verilerden 3D pasta grafiği oluşturmak için
AddChartRequest
işlevinin nasıl kullanılacağı gösterilmektedir. İstek, grafiği yapılandırmak için aşağıdakileri yapar:
- Grafik başlığını ayarlar.
- Grafiğin sağına bir gösterge ekler.
- Grafiği 3D pasta grafik olarak ayarlar. 3D pasta grafiklerin, düz pasta grafiklerde olduğu gibi ortasında "halka" bulunamayacağını unutmayın.
- Grafik veri serilerini her model numarası için toplam satış olarak ayarlar.
- SHEET_ID ile belirtilen sayfadaki C3 hücresine grafiği, hem X hem de Y yönünde 50 piksel uzaklıkta sabitler.
İstek protokolü aşağıda gösterilmektedir.
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, isteğin içindeki RIGHT_LEGENDlegendPositionLABELED_LEGEND değerini LABELED_LEGEND olarak da güncelleyebilirsiniz. Böylece, gösterge değerleri pasta grafiği dilimlerine bağlanır.
'legendPosition': 'LABELED_LEGEND',
Güncellenen istek, aşağıdaki gibi bir grafik oluşturur:
Bitişik olmayan birden fazla aralık kullanarak çizgi grafik ekleme
Aşağıdaki
spreadsheets.batchUpdate
kod örneğinde, kaynak verilerden çizgi grafik oluşturmak ve bunu kaynak sayfaya yerleştirmek için
AddChartRequest
işlevinin nasıl kullanılacağı gösterilmektedir.
Bitişik olmayan aralıkları seçerek satırları ChartSourceRange
'den hariç tutabilirsiniz.
İstek, grafiği yapılandırmak için aşağıdakileri yapar:
- Grafik türünü çizgi grafik olarak ayarlar.
- Yatay x ekseni başlığını ayarlar.
- Satışları temsil eden bir veri serisi yapılandırır. Varsayılan biçimlendirme ve renkler kullanılırken A1:A3 ve A6:A7,
domain
, B1:B3 ve B6:B7 iseseries
olarak ayarlanır. Aralıklar, istek URL'sinde A1 gösterimi kullanılarak belirtilir. - Grafiği, SHEET_ID ile belirtilen sayfanın H8 hücresine sabitler.
İstek protokolü aşağıda gösterilmektedir.
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, yeni bir sayfada aşağıdaki gibi bir grafik oluşturur:
Grafik silme
Aşağıdaki
spreadsheets.batchUpdate
kod örneğinde, CHART_ID ile belirtilen bir grafiği silmek için
DeleteEmbeddedObjectRequest
işlevinin nasıl kullanılacağı gösterilmektedir.
İstek protokolü aşağıda gösterilmektedir.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Grafik özelliklerini düzenleme
Aşağıdaki
spreadsheets.batchUpdate
kod örneğinde, Sütun grafiği ekleme tarifinde oluşturulan grafiği düzenlemek, verilerini, türünü ve görünümünü değiştirmek için
UpdateChartSpecRequest
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ını UpdateChartSpecRequest
ile doldurmanız gerekir. Temel olarak, grafik spesifikasyonunu düzenlemek için yeni bir spesifikasyonla değiştirmeniz gerekir.
Aşağıdaki istek, orijinal grafiği (CHART_ID ile belirtilen) günceller:
- Grafik türünü
BAR
olarak ayarlar. - Göstergeyi grafiğin sağına taşır.
- Eksenleri ters çevirerek "Satış"ın alt eksende, "Model Numaraları"nın ise sol eksende yer almasını sağlar.
- Eksen başlığı biçimini 24 punto yazı tipi, kalın ve italik olarak ayarlar.
- Grafikteki "W-24" verilerini (grafik kaynağı verilerinde 7. satır) kaldırır.
İstek protokolü aşağıda gösterilmektedir.
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
işaretinin nasıl kullanılacağı gösterilmektedir. İstekten sonra, CHART_ID tarafından belirtilen grafik:
- Orijinal sayfasının A5 hücresine sabitlenir.
- X yönünde 100 piksel ofset.
- 1.200 x 742 piksel olarak yeniden boyutlandırılır (grafik için varsayılan boyut 600 x 371 pikseldir).
İstek yalnızca fields
parametresiyle belirtilen özellikleri değiştirir.
Diğer özellikler (ör. offsetYPixels
) orijinal değerlerini korur.
İstek protokolü aşağıda gösterilmektedir.
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, bir e-tablodan grafik verilerinin 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
nesnelerinin dizisini içeren bir spreadsheet
nesnesidir.
Bir sayfada bulunan tüm grafikler sheet
nesnesinde gösterilir.
Bir yanıt alanı varsayılan değere ayarlanırsa yanıttan çıkarılır.
Bu örnekte, ilk sayfada (SOURCE_SHEET_ID) grafik olmadığı için boş bir küme parantezi çifti döndürülür. İkinci sayfada, Sütun grafiği ekleme ile oluşturulan grafik dışında başka bir şey yok.
İstek protokolü aşağıda gösterilmektedir.
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", }, } ] } ] }