Listeler

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:

Sütun grafik tarif sonucunu ekle

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:

Pasta grafik tarifi sonucu ekle

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:

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ş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'yi 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, yeni bir sayfada aşağıdaki gibi bir grafik oluşturur:

Bitişik olmayan aralık çizgi grafiği tarifi sonucunu ekle

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:

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