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

Angular中Ag-Grid用groupRows分组时实现列聚合显示

实现Ag-Grid分组行各列聚合值展示(groupRows模式)

步骤1:为目标列配置聚合函数

给每个需要展示聚合结果的列添加aggFunc属性,可使用Ag-Grid内置函数(如'sum'、'avg'、'count'),也可以自定义聚合逻辑:

columnDefs = [
  { field: 'country', rowGroup: true, hide: true },
  { field: 'year', rowGroup: true, hide: true },
  // 内置求和聚合
  { field: 'sales', aggFunc: 'sum' },
  // 自定义平均利润聚合
  { field: 'profit', aggFunc: (params) => {
    let total = 0;
    params.values.forEach(val => total += val);
    return (total / params.values.length).toFixed(2);
  }},
  // 其他列配置...
];

步骤2:自定义分组行单元格渲染器

创建一个Angular组件作为单元格渲染器,判断当前行是否为分组行,若是则以红色样式渲染聚合值:

import { Component } from '@angular/core';
import { ICellRendererAngularComp } from 'ag-grid-angular';

@Component({
  template: `
    <span *ngIf="params.node.group" style="color: red; font-weight: bold;">{{ params.value }}</span>
    <span *ngIf="!params.node.group">{{ params.value }}</span>
  `
})
export class GroupAggRendererComponent implements ICellRendererAngularComp {
  params: any;

  agInit(params: any): void {
    this.params = params;
  }

  refresh(params: any): boolean {
    this.params = params;
    return true;
  }
}

在模块中声明该组件,并在Ag-Grid配置里注册:

import { GroupAggRendererComponent } from './group-agg-renderer.component';

// 组件内的Ag-Grid配置
frameworkComponents = {
  groupAggRenderer: GroupAggRendererComponent
};

最后在列定义中绑定该渲染器:

columnDefs = [
  // ...其他列
  { field: 'sales', aggFunc: 'sum', cellRenderer: 'groupAggRenderer' },
  { field: 'profit', aggFunc: customAggFunc, cellRenderer: 'groupAggRenderer' },
];

步骤3:确认分组基础配置

确保你的Grid配置已开启groupRows模式:

gridOptions = {
  groupDisplayType: 'groupRows',
  autoGroupColumnDef: {
    headerName: '分组',
    cellRendererParams: {
      suppressCount: true // 不需要默认分组计数可关闭
    }
  },
  // 其他配置...
};

完成以上配置后,分组行的对应列会以红色加粗样式展示该分组的聚合计算结果,匹配你需要的效果。


内容的提问来源于stack exchange,提问作者Pradeep Charan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:32:07