XLSX
数据透视表
基于源数据创建数据透视表,支持 11 种聚合函数
基本透视表
从源工作表的数据区域创建透视表,按行字段分组并聚合数据:
{
"worksheets": [
{
"name": "Data",
"rows": [
{ "cells": [{ "value": "Region" }, { "value": "Product" }, { "value": "Sales" }] },
{ "cells": [{ "value": "East" }, { "value": "Widget" }, { "value": 150 }] },
{ "cells": [{ "value": "East" }, { "value": "Gadget" }, { "value": 200 }] },
{ "cells": [{ "value": "West" }, { "value": "Widget" }, { "value": 300 }] },
{ "cells": [{ "value": "West" }, { "value": "Gadget" }, { "value": 100 }] },
{ "cells": [{ "value": "North" }, { "value": "Widget" }, { "value": 250 }] },
{ "cells": [{ "value": "North" }, { "value": "Gadget" }, { "value": 175 }] }
]
},
{
"name": "Pivot",
"rows": [],
"pivotTables": [
{
"source": "A1:C7",
"sourceSheet": "Data",
"location": "A3",
"rows": ["Region"],
"data": [{ "field": "Sales", "summarize": "sum" }]
}
]
}
]
}
{
name: "Data",
rows: [
{ cells: [{ value: "Region" }, { value: "Product" }, { value: "Sales" }] },
{ cells: [{ value: "East" }, { value: "Widget" }, { value: 150 }] },
{ cells: [{ value: "East" }, { value: "Gadget" }, { value: 200 }] },
{ cells: [{ value: "West" }, { value: "Widget" }, { value: 300 }] },
{ cells: [{ value: "West" }, { value: "Gadget" }, { value: 100 }] },
{ cells: [{ value: "North" }, { value: "Widget" }, { value: 250 }] },
{ cells: [{ value: "North" }, { value: "Gadget" }, { value: 175 }] },
],
}
{
name: "Pivot",
rows: [],
pivotTables: [
{
source: "A1:C7",
sourceSheet: "Data",
location: "A3",
rows: ["Region"],
data: [{ field: "Sales", summarize: "sum" }],
},
],
}
聚合函数
支持 OOXML ST_DataConsolidateFunction 定义的全部 11 种聚合类型:
| 函数 | summarize 值 | 说明 |
|---|---|---|
| 求和 | "sum" | 数值总和(默认) |
| 平均值 | "average" | 算术平均值 |
| 计数 | "count" | 非空值数量 |
| 数值计数 | "countNums" | 数值数量 |
| 最大值 | "max" | 最大值 |
| 最小值 | "min" | 最小值 |
| 乘积 | "product" | 所有值的乘积 |
| 样本标准差 | "stdDev" | STDEV.S |
| 总体标准差 | "stdDevp" | STDEV.P |
| 样本方差 | "var" | VAR.S |
| 总体方差 | "varp" | VAR.P |
多个数据字段
在同一透视表中添加多个聚合:
{
"pivotTables": [
{
"source": "A1:C7",
"sourceSheet": "Data",
"location": "A3",
"rows": ["Region"],
"data": [
{ "field": "Sales", "summarize": "sum", "name": "Total Sales" },
{ "field": "Sales", "summarize": "average", "name": "Avg Sales" }
]
}
]
}
pivotTables: [
{
source: "A1:C7",
sourceSheet: "Data",
location: "A3",
rows: ["Region"],
data: [
{ field: "Sales", summarize: "sum", name: "Total Sales" },
{ field: "Sales", summarize: "average", name: "Avg Sales" },
],
},
],
透视表选项参考
| 选项 | 类型 | 说明 |
|---|---|---|
source | string | 源数据区域,如 "A1:C11" |
sourceSheet | string | 源工作表名称(默认:当前工作表) |
location | string | 输出起始单元格(默认:"A3") |
rows | string[] | 行字段名称 |
columns | string[] | 列字段名称 |
data | DataField[] | 数据字段配置 |
name | string | 透视表名称(默认:"PivotTable1") |
style | string | 透视表样式名(默认:"PivotStyleLight16") |
PivotDataField 选项
| 选项 | 类型 | 说明 |
|---|---|---|
field | string | 要聚合的源字段名 |
summarize | string | 聚合函数(默认:"sum") |
name | string | 数据字段显示名(默认:"Sum of {field}") |