Listeler

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:

Sütun grafik tarifi sonucu ekle

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:

Pasta grafik tarifi sonucu ekle

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:

Pasta grafik tarifi sonucu ekle

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 ise series 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:

Bitişik olmayan aralık çizgi grafiği
tarif sonucu ekle

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:

Grafik tarifi sonucunu düzenle

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",
          },
        }
      ]
    }
  ]
}