本指南介绍了如何以及为何使用 Google Sheets API 在电子表格中创建数据透视表。
什么是数据透视表?
数据透视表可用于汇总电子表格中的数据,自动汇总、排序、计数或为数据求平均值,并将汇总结果显示在新的表格中。数据透视表可以作为查询源数据集的一种方式。此源数据位于电子表格中的其他位置,而数据透视表则显示数据的处理后视图。
例如,请考虑以下销售数据集:
| A | B | C | D | E | F | G | |
| 1 | 商品类别 | 型号 | 费用 | 数量 | 区域 | 销售人员 | 发货日期 | 
| 2 | 车轮 | W-24 | 20.50 美元 | 4 | 西 | Beth | 2016 年 3 月 1 日 | 
| 3 | 门 | D-01X | 15.00 美元 | 2 | 南 | Amir | 2016 年 3 月 15 日 | 
| 4 | 引擎 | ENG-0134 | ¥100.00 | 1 | 北 | Carmen | 2016 年 3 月 20 日 | 
| 5 | Frame | FR-0B1 | 34.00 美元 | 8 | 东 | Hannah | 2016 年 3 月 12 日 | 
| 6 | 面板 | P-034 | 6.00 美元 | 4 | 北 | Devyn | 2016 年 4 月 2 日 | 
| 7 | 面板 | P-052 | 11.50 美元 | 7 | 东 | Erik | 2016 年 5 月 16 日 | 
| 8 | 车轮 | W-24 | 20.50 美元 | 11 | 南 | Sheldon | 2016 年 4 月 30 日 | 
| 9 | 引擎 | ENG-0161 | $330.00 | 2 | 北 | Jessie | 2016 年 7 月 2 日 | 
| 10 | 门 | D-01Y | 29.00 美元 | 6 | 西 | Armando | 2016 年 3 月 13 日 | 
| 11 | Frame | FR-0B1 | 34.00 美元 | 9 | 南 | Yuliana | 2016 年 2 月 27 日 | 
| 12 | 面板 | P-102 | $3.00 | 15 | 西 | Carmen | 2016 年 4 月 18 日 | 
| 13 | 面板 | P-105 | $8.25 | 13 | 西 | Jessie | 2016 年 6 月 20 日 | 
| 14 | 引擎 | ENG-0211 | $283.00 | 1 | 北 | Amir | 2016 年 6 月 21 日 | 
| 15 | 门 | D-01X | 15.00 美元 | 2 | 西 | Armando | 2016 年 7 月 3 日 | 
| 16 | Frame | FR-0B1 | 34.00 美元 | 6 | 南 | Carmen | 7/15/2016 | 
| 17 | 车轮 | W-25 | $20.00 | 8 | 南 | Hannah | 2016 年 5 月 2 日 | 
| 18 | 车轮 | W-11 | 29.00 美元 | 13 | 东 | Erik | 2016 年 5 月 19 日 | 
| 19 | 门 | D-05 | $17.70 | 7 | 西 | Beth | 2016 年 6 月 28 日 | 
| 20 | Frame | FR-0B1 | 34.00 美元 | 8 | 北 | Sheldon | 2016 年 3 月 30 日 | 
您可以使用数据透视表创建一份报告,其中显示了每个区域中每种型号的销售数量:

如需查看用于生成此透视表的源代码,请参阅下方的示例部分。
透视表放置在电子表格中后,用户可以使用 Google 表格界面以交互方式更改摘要的结构和详细信息。
使用数据透视表
数据透视表定义与工作表上的单个单元格相关联。虽然在渲染外观上,它在高度和宽度上都占据多个单元格,但在程序上,它位于单个单元格坐标处。此单元格将成为呈现的透视表的左上角,其水平和垂直范围由其定义决定。
添加数据透视表
如需添加透视表,请使用 batchUpdate 方法,并提供 updateCells 请求。您可以使用此请求提供 PivotTable 定义作为单元格的内容,如下所示:
{
  "updateCells": {
    "rows": {
      "values": [
        {
          "pivotTable": "MyPivotTable"
        }
      ],
      "start": {
        "sheetId": "sheetId",
        "rowIndex": 0,
        "columnIndex": 0
      },
      "fields": "pivotTable"
    }
  }
}
这会将 MyPivotTable 所述的透视表放置在指定工作表中,左上角位于单元格 A1。(数据透视表的高度和宽度是动态的;您只需指定原点。)
借助 PivotTable 类型,您可以指定:
- 源数据范围
 - 一个或多个字段,这些字段的数据将构成数据透视表的行
 - 一个或多个字段,这些字段的数据将构成数据透视表的列
 - 过滤和汇总条件
 - 数据透视表布局
 
修改和删除数据透视表
没有明确的请求来修改或删除数据透视表。请改为使用具有不同单元格内容的 updateCells 请求:
- 如需修改数据透视表,请创建修改后的 PivotTable 定义,然后使用该定义更新单元格,这与添加新的数据透视表类似。
 - 如需删除透视表,请使用空值更新相应单元格。如需查看示例,请参阅删除数据透视表示例。
 
使用场景
透视表用途广泛,可用于统计分析、ERP 应用、财务报告等众多领域。经典透视表应用场景包括:
- 按地区和季度划分的总销售额
 - 按职位和地点划分的平均薪资
 - 按产品和时间段统计的突发事件数量
 
数据透视表的潜在应用非常广泛,并且能够以编程方式生成数据透视表非常强大。您可以生成支持互动式探索但针对特定情况量身定制的透视表,例如:
- 探索最近 24 小时内的突发事件数据
 - 查看或分析与所选账号对应的汇总数据
 - 检查属于当前用户的地区中的销售数据
 
示例
此示例将根据数据集创建一个数据透视表,以生成本页简介中显示的“各地区的型号”报告。如需查看更多示例,请参阅透视表示例页面。