Google E-Tablolar API'si, e-tablolarda gerektiğinde grafikler 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, dilsiz olması için HTTP istekleri biçiminde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncellemenin nasıl uygulanacağını öğrenmek için E-tabloları güncelleme bölümüne bakın.
Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nereye gireceğinizi 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. Sayfa1!A1:D5 örnek aralıktır.
Ayrıca CHART_ID yer tutucusu, belirli bir grafiğin kimliğini belirtir. Bu kimliği, Sheets API ile bir grafik oluştururken 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, sayfanızı kaynak verileri içeren şekilde gösterir. Bu örneklerde, Kaynak verileri grafiği altında listelenen tablo budur.
Grafik kaynak verileri
Bu örnekler için, kullanılan e-tablonun ilk sayfasında ("Sheet1") aşağıdaki kaynak verilerin bulunduğunu varsayalım. İlk satırdaki dizeler, bağımsız sütunların etiketleridir. E-tablonuzdaki diğer sayfalardan nasıl okunacağına ilişkin örnekleri görüntülemek için A1 notasyonuna bakın.
CEVAP | B | C | D | E | |
1 | Model Numarası | Satış - Ocak | Satış - Şub | Satış - Mar | 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şturup yeni bir e-tabloya yerleştirmek için AddChartRequest
aracının nasıl kullanılacağı gösterilmektedir. İstek, grafiği yapılandırmak için şunları yapar:
- Grafik türünü sütun grafik olarak ayarlar.
- Grafiğin alt kısmına gösterge ekler.
- Grafiği ve eksen başlıklarını ayarlar.
- Varsayılan biçimlendirmeyi ve renkleri kullanarak 3 farklı aydaki satışları temsil eden 3 veri serisini 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, 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 grafik oluşturmak için AddChartRequest
aracının 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 gösterge ekler.
- Grafiği 3D pasta grafik olarak ayarlar. 3D pasta grafiklerin ortasında, düz pasta grafiklerde olduğu gibi bir "halka deliği" olamayacağını unutmayın.
- Grafik veri serisini, her model numarası için toplam satış olarak ayarlar.
- Grafiği, SHEET_ID tarafından belirtilen sayfanın C3 hücresine sabitler ve her iki yönde de 50 piksellik bir ofset değeriyle sabitlenir.
İ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 şuna benzer bir grafik oluşturur:
Alternatif olarak, gösterge değerlerinin pasta grafik dilimlerine bağlanması için istek içinde RIGHT_LEGEND olan LegendPosition değerini LABELED_LEGEND olarak da güncelleyebilirsiniz.
'legendPosition': 'LABELED_LEGEND',
Güncellenen istek şuna benzer 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şturup kaynak sayfaya yerleştirmek için AddChartRequest
'in nasıl kullanılacağı gösterilmektedir.
Bitişik olmayan aralıkları seçmek, satırları ChartSourceRange
öğesinden 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çimlendirmeyi ve renkleri kullanırken A1:A3 ve A6:A7'yi
domain
, B1:B3 ve B6:B7'yiseries
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, yeni bir sayfada aşağıdaki gibi bir grafik oluşturur:
Grafiği silme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, CHART_ID tarafından belirtilen bir grafiği silmek için DeleteEmbeddedObjectRequest
kodunun 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 } } ] }
Grafiğin özelliklerini düzenleme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, Sütun grafiği ekle tarifinde oluşturulan grafiği düzenlemek, bu grafiğin verilerini, türünü ve görünümünü değiştirmek için UpdateChartSpecRequest
kodunun nasıl kullanılacağı gösterilmektedir. Grafik özelliklerinin alt kümeleri tek tek değiştirilemez. Düzenleme yapmak için tüm spec
alanına bir UpdateChartSpecRequest
sağlamanız gerekir. Esas olarak, bir grafik spesifikasyonunu düzenlemek,
yeni bir spesifikasyonla değiştirmeyi gerektirir.
Aşağıdaki istek, orijinal grafiği günceller (CHART_ID ile 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ık biçimini 24 punto yazı tipi, kalın ve italik olacak şekilde ayarlar.
- Grafikteki "W-24" verilerini 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 } } } } ] }
İstek sonrasında 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
kodunun nasıl kullanılacağı gösterilmektedir. İstekten sonra, CHART_ID tarafından belirtilen grafik şu şekildedir:
- Orijinal sayfasının A5 hücresine sabitlendi.
- X yönünde 100 piksel göreli konum.
- 1.200 x 742 piksel olacak şekilde yeniden boyutlandırıldı (grafik için varsayılan boyut 600 x 371 pikseldir).
İ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 oku
Aşağıdaki spreadsheets.get
kod örneğinde, 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ının yanıtı, sheet
nesne dizisi içeren bir spreadsheet
nesnesidir. Bir sayfada bulunan 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 olmadığı için boş bir çift küme parantezi döndürülür. İkinci sayfada Sütun grafik ekle ile oluşturulan grafik vardır, başka hiçbir şey yoktur.
İ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", }, } ] } ] }