You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AG Grid透视聚合列转置求助:如何实现目标表格布局

AG Grid 透视表格转置实现方案

当前你已完成model字段的透视,但需要将行与列的维度互换(目标为聚合指标作为行、model值作为列),AG Grid没有原生的转置开关,但可以通过调整行分组与透视配置实现需求,具体修改如下:

修改后的代码配置

TypeScript 数据与列定义

public rowData = [
  { order: 1, amount: 100, model: "A"},
  { order: 2, amount: 200, model: "A"},
  { order: 3, amount: 100, model: "A"},
  { order: 4, amount: 200, model: "A"},
  { order: 5, amount: 100, model: "B"},
  { order: 6, amount: 200, model: "B"},
  { order: 7, amount: 100, model: "B"},
  { order: 8, amount: 100, model: "C"},
  { order: 9, amount: 100, model: "C"},
  { order: 10, amount: 200, model: "D"},
];

public columnDefs: ColDef[] = [
  // 将聚合字段设为行分组维度,显示为行标题
  { field: 'order', rowGroup: true, headerName: '订单数', aggFunc: 'count', hide: false },
  { field: 'amount', rowGroup: true, headerName: '总金额', aggFunc: 'sum', hide: false },
  // model作为透视列维度,每个model值生成一列
  { field: 'model', pivot: true },
  // 为每个透视列指定对应的聚合逻辑(隐藏列,仅用于计算)
  { field: 'order', pivot: true, aggFunc: 'count', hide: true },
  { field: 'amount', pivot: true, aggFunc: 'sum', hide: true }
];

HTML 组件模板

<div style="display: flex; flex-direction: column; height: 100%;">
<ag-grid-angular
  style="width: 100%; height: 100%;"
  class="ag-theme-alpine"
  [columnDefs]="columnDefs"
  [pivotMode]="true"
  [rowData]="rowData"
  [groupDefaultExpanded]="-1" <!-- 默认展开所有行分组,直接显示聚合结果 -->
  [suppressAggFuncInHeader]="true" <!-- 隐藏表头中的聚合函数标识,优化显示 -->
  [suppressRowGroupHiding]="true" <!-- 禁止行分组列被隐藏 -->
></ag-grid-angular>
</div>

配置说明

  • 把order和amount设为rowGroup: true,让聚合指标成为行的维度,分组后直接显示聚合结果。
  • model设为pivot: true,将不同model值拆分为独立列。
  • 额外添加的隐藏透视列,用于为每个model列绑定对应的聚合计算逻辑(count订单数、sum金额)。
  • 附加的配置项用于优化显示效果,确保表格直接呈现目标结构,无需手动展开分组。

内容的提问来源于stack exchange,提问作者Srinivas Mallisetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:48:22