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 升级指南

隐藏列头

上一篇
自定义交互
下一篇
行列宽高调整

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...

注意

阅读本章前,请确保已经阅读过 基础交互,Tooltip 注意事项 等章节。

当你想降低不重要信息干扰时,可以隐藏列头,方便你更直观的查看数据,有三种方式隐藏列头。

1. 手动隐藏 - 通过点击

在 @antv/s2 中,可以通过 自定义 tooltip 内容 的方式添加 隐藏按钮, @antv/s2-react 中已经内置,点击列头 tooltip 内的 隐藏 按钮即可。

preview

关闭交互式隐藏:

const s2Options = {
tooltip: {
operation: {
hiddenColumns: false,
},
},
}

2. 自动隐藏 - 通过配置

可配置默认隐藏的列头,支持透视表和明细表。

1. 明细表

如果是单列头的明细表,指定 s2DataConfig.fields.columns 的任意字段即可。

const s2DataConfig = {
fields: {
columns: ['province', 'city', 'type', 'price'],
},
};
const s2Options = {
interaction: {
hiddenColumnFields: ['city']
}
}

preview

对于 自定义列头 的明细表,需要指定单元格的对应 节点 id。

如何获取列头 ID?
const s2 = new TableSheet()
await s2.render()
console.log(s2.facet.getColNodes())
const s2DataConfig = {
fields: {
columns: [
{
field: 'a-1',
title: '自定义节点 a-1',
children: [
{
field: 'a-1-1',
title: '自定义节点 a-1-1',
},
],
},
{
field: 'a-2',
title: '自定义节点 a-2',
children: [],
}
]
}
};
const s2Options = {
interaction: {
hiddenColumnFields: ['root[&]a-1[&]a-1-1']
}
}

2. 透视表

透视表存在多列头,需要指定列头对应的 节点 id, 自定义列头 同理,这里不再赘述。

如何获取列头 ID?
const s2 = new PivotSheet()
await s2.render()
console.log(s2.facet.getColNodes())
const s2DataConfig = {
fields: {
rows: [
'province',
'city'
],
columns: [
'type',
'sub_type'
],
values: [
'number'
],
valueInCols: true
},
}
const s2Options = {
interaction: {
hiddenColumnFields: ['root[&]家具[&]沙发[&]number'],
}
}

preview

hiddenColumnFields 支持自动分组,举个示例,比如隐藏的是 province, type, price

const s2Options = {
interaction: {
hiddenColumnFields: ['province', 'type', 'price']
}
}

第二列 city 未配置隐藏,那么就会得到两组

  • ['province']
  • ['type', 'price']

从而渲染两个隐藏按钮,按钮之间独立作用,点击第一个展开按钮,展开 province, 点击第二个展开按钮,展开 type 和 price

preview

还可以集成分析组件,通过改变配置的方式,实现动态隐藏列头,具体请查看 分析组件

preview

3. 手动隐藏 - 通过实例方法

查看所有 API
const s2 = new TableSheet(...)
const hiddenColumnFields = ['province', 'type', 'price']
s2.interaction.hideColumns(hiddenColumnFields)

获取隐藏列头数据

可通过 S2Event 透出的 COL_CELL_EXPANDED 和 COL_CELL_HIDDEN 分别监听列头的展开和隐藏 可通过 S2Event 透出的 COL_CELL_EXPAND_ICON_HOVER 获取当前位置的隐藏列

import { S2Event } from '@antv/s2'
const s2 = new TableSheet(...);
s2.on(S2Event.COL_CELL_EXPANDED, (cell) => {
console.log('列头展开', cell);
});
s2.on(
S2Event.COL_CELL_HIDDEN,
(currentHiddenColumnsInfo, hiddenColumnsDetail) => {
console.log('列头隐藏', currentHiddenColumnsInfo, hiddenColumnsDetail);
},
);
s2.on(
S2Event.COL_CELL_EXPAND_ICON_HOVER,
({event, meta, hiddenColumns}) => {
console.log('当前位置隐藏列', hiddenColumns)
}
)

也可以访问存储在 store 的 hiddenColumnsDetail 主动获取

const hiddenColumnsDetail = s2.store.get('hiddenColumnsDetail')
console.log(hiddenColumnsDetail)