Pivot tablolar

Google E-Tablolar API'sı, e-tablolarda pivot tablolar oluşturmanıza ve bunları güncellemenize olanak tanır. Bu sayfadaki örnekler, bazı ortak pivot tabloları nasıl .

Bu örnekler, HTTP istekleri şeklinde sunulur. nötr. Bir toplu güncellemeyi farklı dillerde nasıl uygulayacağınızı öğrenmek için hakkında daha fazla bilgi edinmek için Güncelleme e-tablolar gibi).

Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları bu kimlikleri nereye sağlayacağınızı belirtir. E-tabloyu kimliği ekleyin. Şundan faydalanabilirsiniz: sayfa kimliğini değiştirmek için spreadsheets.get yöntemini kullanabilirsiniz. İlgili içeriği oluşturmak için kullanılan aralıklar A1 gösterimi kullanılarak belirtilir. örnek aralık Sayfa1!A1:D5'tir.

Ayrıca, SOURCE_SHEET_ID yer tutucusu, sayfanızı belirtir kaynak verilerle karşılaştırabilirsiniz. Bu örneklerde Pivot tablo altında listelenen tablo tablo kaynak verileri.

Pivot tablo kaynak verileri

Bu örnekler için, kullanılan e-tablonun aşağıdaki kaynağa sahip olduğunu varsayalım "satış" verilerini ("Sayfa1") kapsar. İlk satırdaki dizeler her bir sütun için ayrı ayrı etiketler oluşturabilirsiniz. Diğer kaynaklardan nasıl okuyacağınıza dair tablolarında A1 gösterimine bakın.

A B C D E F Y
1 Öğe Kategorisi Model Numarası Maliyet Miktar Bölge Satış görevlisi Gönderim Tarihi
2 Tekerlek W-24 20,50 TL 4 Batı Banu 01.03.2016
3 Kapı D-01X 15 TL 2 Güney Emir 15.03.2016
4 Motor ENG-0134 100,00 TL 1 Kuzey Carmen Dili 20.03.2016
5 Çerçeve FR-0B1 34,00 TL 8 Doğu Hannah 12.03.2016
6 Panel P-034 6,00 ABD doları 4 Kuzey Devyn 02.04.2016
7 Panel P-052 11,50 TL 7 Doğu Eren 16.05.2016
8 Tekerlek W-24 20,50 TL 11 Güney Sheldon 30.04.2016
9 Motor ENG-0161 330,00 ABD doları 2 Kuzey Jale 02.07.2016
10 Kapı G-01Y 29,00 TL 6 Batı Armando 13.03.2016
11 Çerçeve FR-0B1 34,00 TL 9 Güney Yuliana 27.02.2016
12 Panel P-102 3,00 ABD doları 15 Batı Carmen Dili 18.04.2016
13 Panel P-105 8,25 TL 13 Batı Jale 20.06.2016
14 Motor ENG-0211 283,00 TL 1 Kuzey Emir 21.06.2016
15 Kapı D-01X 15 TL 2 Batı Armando 03.07.2016
16 Çerçeve FR-0B1 34,00 TL 6 Güney Carmen Dili 15.07.2016
17 Tekerlek W-25 20,00 TL 8 Güney Hannah 02.05.2016
18 Tekerlek W-11 29,00 TL 13 Doğu Eren 19.05.2016
19 Kapı D-05 17,70 TL 7 Batı Banu 28.06.2016
20 Çerçeve FR-0B1 34,00 TL 8 Kuzey Sheldon 30.03.2016

Pivot tablo ekleme

Aşağıdakiler spreadsheets.batchUpdate kod örneği, UpdateCellsRequest Böylece, kaynak verilerden bir pivot tablo oluşturabilir ve bu tabloyu A50 hücresine SHEET_ID tarafından belirtilen sayfa.

İstek, pivot tabloyu aşağıdaki özelliklerle yapılandırır:

  • Satış sayısını gösteren bir değer grubu (Miktar). Başlangıç yalnızca bir değer grubu vardır, 2 olası valueLayout eşdeğerdir.
  • İki satır grubu (Öğe Kategorisi ve Model Numarası). İlk sıralama toplam Miktar'ın "Batı"dan artan değeri Bölge. Dolayısıyla, "Motor" (Batı satışları olmadan) "Kapı"nın üzerinde görünür (Batı'da 15 satış). İlgili içeriği oluşturmak için kullanılan Model Numarası grubu, tüm satışları azalan düzende sıralar bölgeleri, yani "W-24" "W-25"in üzerinde (15 satış) görünür (8 satış). Bu işlem tamamlandı ayarlayarak valueBucket alanını {} olarak ayarlayın.
  • En çok satışa göre artan düzende sıralayan bir sütun grubu (Bölge). Yine valueBucket, {} olarak ayarlandı. "Kuzey" en düşük toplam satışa sahiptir ve Bu nedenle ilk Bölge sütunu olarak görünür.

İstek protokolü aşağıda gösterilmiştir.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
          "rows": [
              {
            "values": [
              {
                "pivotTable": {
                  "source": {
                    "sheetId": SOURCE_SHEET_ID,
                    "startRowIndex": 0,
                    "startColumnIndex": 0,
                    "endRowIndex": 20,
                    "endColumnIndex": 7
                  },
                  "rows": [
                    {
                      "sourceColumnOffset": 0,
                      "showTotals": true,
                      "sortOrder": "ASCENDING",
                      "valueBucket": {
                        "buckets": [
                          {
                            "stringValue": "West"
                          }
                        ]
                      }
                    },
                    {
                      "sourceColumnOffset": 1,
                      "showTotals": true,
                      "sortOrder": "DESCENDING",
                      "valueBucket": {}
                    }
                  ],
                  "columns": [
                    {
                      "sourceColumnOffset": 4,
                      "sortOrder": "ASCENDING",
                      "showTotals": true,
                      "valueBucket": {}
                    }
                  ],
                  "values": [
                    {
                      "summarizeFunction": "SUM",
                      "sourceColumnOffset": 3
                    }
                  ],
                  "valueLayout": "HORIZONTAL"
                }
              }
            ]
          }
        ],
        "start": {
          "sheetId": SHEET_ID,
          "rowIndex": 49,
          "columnIndex": 0
        },
        "fields": "pivotTable"
      }
    }
  ]
}

İstek, aşağıdaki gibi bir pivot tablo oluşturur:

Pivot tablo tarifi sonucu ekle

Hesaplanmış değerlere sahip bir pivot tablo ekleme

Aşağıdakiler spreadsheets.batchUpdate kod örneği, UpdateCellsRequest kaynak verilerden hesaplanan değerler grubuyla bir pivot tablo oluşturmak için SHEET_ID tarafından belirtilen sayfanın A50 hücresine sabitlenir.

İstek, pivot tabloyu aşağıdaki özelliklerle yapılandırır:

  • İki değer grubu (quantity ve Total Price). İlki, sayısını artırır. İkincisi, a parçasının maliyetini ve toplam satış sayısını hesaplarken, şu formülü kullanın: =Cost*SUM(Quantity)
  • Üç satır grubu (Öğe Kategorisi, Model Numarası ve Maliyet).
  • Bir sütun grubu (Bölge).
  • Satır ve sütun grupları her birinde ada göre (Miktar yerine) sıralanır alfabetik olarak sıralar. Bu, valueBucket alanından PivotGroup.
  • Tablo görünümünü basitleştirmek için istek, ara toplamları gizler topluca düzenlemeniz önerilir.
  • İstek valueLayout daha iyi tablo görünümü için VERTICAL. valueLayout yalnızca varsayımları büyük önem taşır.

İstek protokolü aşağıda gösterilmiştir.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
        "rows": [
              {
            "values": [
              {
                "pivotTable": {
                  "source": {
                    "sheetId": SOURCE_SHEET_ID,
                    "startRowIndex": 0,
                    "startColumnIndex": 0,
                    "endRowIndex": 20,
                    "endColumnIndex": 7
                  },
                  "rows": [
                    {
                      "sourceColumnOffset": 0,
                      "showTotals": true,
                      "sortOrder": "ASCENDING"
                    },
                    {
                      "sourceColumnOffset": 1,
                      "showTotals": false,
                      "sortOrder": "ASCENDING",
                    },
                    {
                      "sourceColumnOffset": 2,
                      "showTotals": false,
                      "sortOrder": "ASCENDING",
                    }
                  ],
                  "columns": [
                    {
                      "sourceColumnOffset": 4,
                      "sortOrder": "ASCENDING",
                      "showTotals": true
                    }
                  ],
                  "values": [
                    {
                      "summarizeFunction": "SUM",
                      "sourceColumnOffset": 3
                    },
                    {
                      "summarizeFunction": "CUSTOM",
                      "name": "Total Price",
                      "formula": "=Cost*SUM(Quantity)"
                    }
                  ],
                  "valueLayout": "VERTICAL"
                }
              }
            ]
          }
        ],
        "start": {
          "sheetId": SHEET_ID,
          "rowIndex": 49,
          "columnIndex": 0
        },
        "fields": "pivotTable"
      }
    }
  ]
}

İstek, aşağıdaki gibi bir pivot tablo oluşturur:

Pivot değerler grubu tarif sonucu ekle

Pivot tablo silme

Aşağıdakiler spreadsheets.batchUpdate kod örneği, UpdateCellsRequest sayfanın A50 hücresine bağlı bir pivot tabloyu (varsa) silmek için SHEET_ID tarafından belirtildi.

UpdateCellsRequest, "pivotTable" ifadesini ekleyerek bir pivot tabloyu kaldırabilir bir listesini oluştur: fields parametresini belirtirken çapadaki pivotTable alanı da çıkarılır hücresi

İstek protokolü aşağıda gösterilmiştir.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
          "rows": [ 
            {
            "values": [
              {}
            ]
          }
        ],
        "start": {
          "sheetId": SHEET_ID,
          "rowIndex": 49,
          "columnIndex": 0
        },
        "fields": "pivotTable"
      }
    }
  ]
}

Pivot tablo sütunlarını ve satırlarını düzenleme

Aşağıdakiler spreadsheets.batchUpdate kod örneği, UpdateCellsRequest Pivot tablo ekle bölümünde oluşturulan pivot tabloyu düzenlemek için kullanılır.

Şunun alt kümeleri: pivotTable alanındaki CellData kaynak fields parametresiyle tek tek değiştirilemez. Düzenleme yapmak için tüm pivotTable alanı sağlanmalıdır. Özetle, bir pivot tabloyu düzenlemek bunun yerine yenisiyle değiştirilmesi gerekir.

İstek, orijinal pivot tabloda aşağıdaki değişiklikleri yapar:

  • İkinci satır grubunu orijinal pivot tablodan kaldırır (Model Numarası).
  • Bir sütun grubu (Satış görevlisi) ekler. Sütunlar aşağıdakine göre azalan düzende sıralanır Panel satışlarının toplam sayısıdır. "Carmen" (15 Panel satış) "Jessie"nin solu (13 Panel satışları).
  • "Batı" dışındaki her Bölge için sütunu daraltarak Satış görevlisi grubu. Bu işlem, collapsed öğesinin true valueMetadata o sütun için Bölge sütun grubunda yer alır.

İstek protokolü aşağıda gösterilmiştir.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
        "rows": [
            {
          "values": [
              {
                "pivotTable": {
                  "source": {
                    "sheetId": SOURCE_SHEET_ID,
                    "startRowIndex": 0,
                    "startColumnIndex": 0,
                    "endRowIndex": 20,
                    "endColumnIndex": 7
                  },
                  "rows": [
                    {
                      "sourceColumnOffset": 0,
                      "showTotals": true,
                      "sortOrder": "ASCENDING",
                      "valueBucket": {
                        "buckets": [
                          {
                            "stringValue": "West"
                          }
                        ]
                      }
                    }
                  ],
                  "columns": [
                    {
                      "sourceColumnOffset": 4,
                      "sortOrder": "ASCENDING",
                      "showTotals": true,
                      "valueBucket": {},
                      "valueMetadata": [
                        {
                          "value": {
                            "stringValue": "North"
                          },
                          "collapsed": true
                        },
                        {
                          "value": {
                            "stringValue": "South"
                          },
                          "collapsed": true
                        },
                        {
                          "value": {
                            "stringValue": "East"
                          },
                          "collapsed": true
                        }
                      ]
                    },
                    {
                      "sourceColumnOffset": 5,
                      "sortOrder": "DESCENDING",
                      "showTotals": false,
                      "valueBucket": {
                        "buckets": [
                          {
                            "stringValue": "Panel"
                          }
                        ]
                      },
                    }
                  ],
                  "values": [
                    {
                      "summarizeFunction": "SUM",
                      "sourceColumnOffset": 3
                    }
                  ],
                  "valueLayout": "HORIZONTAL"
                }
              }
            ]
          }
        ],
        "start": {
          "sheetId": SHEET_ID,
          "rowIndex": 49,
          "columnIndex": 0
        },
        "fields": "pivotTable"
      }
    }
  ]
}

İstek, aşağıdaki gibi bir pivot tablo oluşturur:

Pivot tablo tarifi sonucunu düzenle

Pivot tablo verilerini okuma

Aşağıdakiler spreadsheets.get kod örneği , bir e-tablodan pivot tablo verilerinin nasıl alınacağını gösterir. fields sorgusu parametresi, yalnızca pivot tablo verilerinin döndürülmesi gerektiğini belirtir ( (hücre değeri verileri yerine).

İstek protokolü aşağıda gösterilmiştir.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties.sheetId,data.rowData.values.pivotTable)

Yanıt, Spreadsheet bulunan bir Sheet nesnesi SheetProperties öğeler. Ayrıca kendi ülkesinde GridData öğe hakkında bilgi içeren öğeler PivotTable. Pivot tablo bilgileri, sayfanın CellData kaynak tablo sabit olduğu hücreye (yani tablonun sol üst . Bir yanıt alanı varsayılan değere ayarlanırsa tıklayın.

Bu örnekte, ilk sayfada (SOURCE_SHEET_ID) işlenmemiş tablo bulunuyor kaynak veride, ikinci sayfada (SHEET_ID) ise pivot tablo bulunur ve bir hedef koymaktır. Boş küme ayraçları, bu işlemi yapmayan sayfaları veya hücreleri Pivot tablo verilerini içerebilir. Bu istek, referans olarak şu e-tabloyu da döndürür: Kimlikler.

{
  "sheets": [
    {
      "data": [{}],
      "properties": {
        "sheetId": SOURCE_SHEET_ID
      }
    },
    {
      "data": [
        {
          "rowData": [
            {},
            {},
            {
              "values": [
                {},
                {
                  "pivotTable": {
                    "columns": [
                      {
                        "showTotals": true,
                        "sortOrder": "ASCENDING",
                        "sourceColumnOffset": 4,
                        "valueBucket": {}
                      }
                    ],
                    "rows": [
                      {
                        "showTotals": true,
                        "sortOrder": "ASCENDING",
                        "valueBucket": {
                          "buckets": [
                            {
                              "stringValue": "West"
                            }
                          ]
                        }
                      },
                      {
                        "showTotals": true,
                        "sortOrder": "DESCENDING",
                        "valueBucket": {},
                        "sourceColumnOffset": 1
                      }
                    ],
                    "source": {
                      "sheetId": SOURCE_SHEET_ID,
                      "startColumnIndex": 0,
                      "endColumnIndex": 7,
                      "startRowIndex": 0,
                      "endRowIndex": 20
                    },
                    "values": [
                      {
                        "sourceColumnOffset": 3,
                        "summarizeFunction": "SUM"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ],
      "properties": {
        "sheetId": SHEET_ID
      }
    }
  ],
}