logo

S2

  • 使用文档
  • API 文档
  • 图表示例
  • 在线体验
  • 更新日志
  • 所有产品antv logo arrow
  • 2.x
  • 简介
  • 快速上手
  • 基础教程
    • 基本概念
      Updated
    • 表形态
      • 透视表
        Updated
      • 明细表
        Updated
    • 字段标记
      Updated
    • 小计总计
    • 排序
      • 基础排序
        Updated
      • 组内排序
        Updated
    • 主题配置
      Updated
    • Tooltip
      Updated
    • 数据格式化
      New
    • 多行文本
      New
    • 国际化
    • 分页
      New
  • 进阶教程
    • 单元格渲染类型
      • 链接
      • 图片
        New
      • 视频
        New
      • 迷你图表
      • 结合@antv/g2
      • 自定义渲染
    • 自定义
      • 自定义 Hook
        Updated
      • 自定义行列头分组
        New
      • 自定义 Icon
        Updated
      • 自定义单元格对齐方式
        Updated
      • 自定义单元格宽高
        Updated
      • 自定义排序操作
        Updated
      • 自定义折叠/展开节点
        New
    • 交互
      • 基础交互
        Updated
      • 自定义交互
      • 隐藏列头
        Updated
      • 行列宽高调整
        Updated
      • 合并单元格
      • 滚动
        Updated
      • 复制与导出
        New
      • 高亮/选中单元格
        New
    • 分析组件
      • 简介
        New
      • 高级排序
        Updated
      • 维度切换
        Updated
      • 导出
        Updated
      • 分页
        Updated
      • 维度下钻
        Updated
    • 表格组件
      • 编辑表
      • 趋势分析表
        Updated
    • 高清适配
      Updated
    • 获取表格实例
    • 表格自适应
    • 获取单元格数据
      Updated
    • 注册 AntV/G 插件
      New
    • 透视组合图
      Experimental
    • Vue 3.0 组件 (停止维护)
  • 扩展阅读
    • 数据流处理
      • 透视表
      • 明细表
    • 布局流程
      • 透视表
      • 明细表
    • 性能介绍
      Updated
  • 贡献指南
  • 常见问题
  • S2 2.0 升级指南

自定义行列头分组

上一篇
自定义 Hook
下一篇
自定义 Icon

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

S2 默认提供 平铺模式 (grid) 和 树状模式 (tree) 两种行头单元格布局方式。

默认通过分组之后得到的数据生成层级结构, 如果都不满足,还可以通过自定义行列头,来定制你的目录结构,同样兼容平铺和树状这两种布局方式。

一些限制

注意

  1. 默认的排序 icon showDefaultHeaderActionIcon 无效。
  2. 自定义行头时,不支持配置行头 小计总计;自定义列头时,不支持配置列头 小计总计。

数据结构

CustomTreeNode

功能描述:自定义树状结构的配置,适用于透视表和明细表的自定义行列头。查看 文档 和 示例

参数说明类型默认值必选
field当前节点唯一标识string✓
title当前节点展示名string✓
collapsed节点是否收起(树状模式下,行头非叶子节点有效)booleanfalse
description节点的额外描述信息,在对应行头的 tooltip 中展示string
children子节点CustomTreeNode[]
CustomHeaderField
type CustomHeaderField = CustomTreeNode | string;
const customTree = [
{
field: 'a-1',
title: '自定义节点 a-1',
description: 'a-1 描述',
children: [
{
field: 'a-1-1',
title: '自定义节点 a-1-1',
description: 'a-1-1 描述',
children: [
{
field: 'measure-1',
title: '指标 1',
description: '指标 1 描述',
children: [],
},
{
field: 'measure-2',
title: '指标 2',
description: '指标 2 描述',
children: [],
},
],
},
{
field: 'a-1-2',
title: '自定义节点 a-1-2',
description: 'a-1-2 描述',
children: [],
},
],
},
{
field: 'a-2',
title: '自定义节点 a-2',
description: 'a-2 描述',
children: [],
},
];
const data = [
{
'measure-1': 13,
'measure-2': 2,
type: '家具',
sub_type: '桌子',
},
{
'measure-1': 11,
'measure-2': 8,
type: '家具',
sub_type: '椅子',
},
]

1. 透视表

1.1 自定义行头

提示

  1. rows 配置为自定义 tree 结构
  2. 数值需要置于行头,即 valueInCols: false (无论配置与否都会强制置于行头,修改无效)
const s2DataConfig = {
fields: {
rows: customTree,
columns: ['type', 'sub_type'],
values: ['measure-1', 'measure-2'],
valueInCols: false,
},
data,
};

平铺模式

查看示例
const s2Options = {
hierarchyType: 'grid'
};
preview

树状模式

查看示例
const s2Options = {
hierarchyType: 'tree'
};
preview
节点展开/收起

树状模式下默认使用 customTreeNode.collapsed 作为展开/收起状态,也可以使用通用的配置,具体请查看 自定义折叠/展开节点 章节

const s2Options = {
style: {
rowCell: {
collapseFields: {
'custom-node-1': true,
'custom-node-2': false,
},
},
},
}

1.2 自定义列头

提示

  1. columns 配置为自定义 tree 结构
  2. 数值需要置于列头,即 valueInCols: true (无论配置与否都会强制置于列头,修改无效)
const s2DataConfig = {
fields: {
columns: customTree,
rows: ['type', 'sub_type'],
values: ['measure-1', 'measure-2'],
valueInCols: true,
},
data,
};

平铺模式

查看示例
const s2Options = {
hierarchyType: 'grid'
};
preview

树状模式

const s2Options = {
hierarchyType: 'tree'
};
preview

1.3 自定义角头文本

1.3.1 平铺模式

对于平铺模式,角头显示的文本默认对应行头每一列的第一个单元格,可以和普通字段一样,配置 meta 来对单元格文本进行格式化,此时 field 对应 CustomTreeNode 的 field 值

const meta = [
{
field: 'a-1',
name: '层级 1',
},
{
field: 'a-1-1',
name: '层级 2',
},
{
field: 'measure-1',
name: '层级 3',
}
]
preview

1.3.2 树状模式

对于树状模式,角头默认显示的文本对应所有的一级节点和数值,可以和普通字段一样,配置 meta 来对单元格文本进行格式化,也可以配置 s2Options.cornerText 来自定义角头文本

const meta = [
{
field: 'a-1',
name: '层级 1',
},
{
field: 'a-2',
name: '层级 2',
},
]
preview
const s2Options = {
cornerText: '自定义角头标题'
}
preview

2. 明细表

2.1 自定义列头

提示

columns 配置为自定义 tree 结构

const s2DataConfig = {
fields: {
columns: customTree
},
data,
};
查看示例

3. 行列头文本格式化

自定义节点默认使用 当前节点展示名, 即 CustomTreeNode.title, 也可以使用通用的 Meta 来进行格式化,查看更多

const s2DataConfig: S2DataConfig = {
meta: [
{
field: 'a-1',
formatter: (value) => '名称 1'
},
{
field: 'a-1-1',
formatter: (value) => '名称 2'
},
],
};

4. 更多应用

基于自定义行列头,我们可以衍生出更多的使用场景,比如基于 自定义行头 + 树状模式, 我们可以自定义出一个 趋势分析表分析组件.