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

将单元格文本标记为含有下划线的链接样式,实现链接跳转 🔗, 对于透视表和明细表,有细微的区别

preview

标记链接字段

const s2DataConfig = {
fields: {
rows: ['province', 'city'],
columns: ['type'],
values: ['price'],
},
};
const s2Options = {
width: 600,
height: 600,
interaction: {
linkFields: ['city'],
}
};

使用 S2Event.GLOBAL_LINK_FIELD_JUMP 监听链接点击

import { S2Event } from '@antv/s2'
s2.on(S2Event.GLOBAL_LINK_FIELD_JUMP, (data) => {
const { field, meta, record } = data;
// ...
});

透视表

支持将行头 rows, 列头 columns, 数值 values 标记为链接样式。查看示例

import { S2Event } from '@antv/s2'
const s2DataConfig = {
fields: {
rows: ['province', 'city'],
columns: ['type'],
values: ['price'],
},
};
const s2Options = {
width: 600,
height: 600,
interaction: {
linkFields: ['province', 'city', 'type', 'price'],
}
};
const s2 = new PivotSheet(container, s2DataConfig, s2Options);
s2.on(S2Event.GLOBAL_LINK_FIELD_JUMP, (data) => {
const { field, meta, record } = data;
const value = record?.[field];
// 拼装自己的跳转地址
location.href = `https://path/to/${field}=${value}}`;
});
await s2.render();

在单指标的情况下,指标挂行头或列头,对额外多出一个虚拟行列头字段,对应 EXTRA_FIELD, 在这个例子中即 数量

import { EXTRA_FIELD } from '@antv/s2'
const s2Options = {
width: 600,
height: 600,
interaction: {
linkFields: [EXTRA_FIELD],
}
};

明细表

支持将列头 columns 和对应的数值标记为链接样式。查看示例

注意

由于明细表单列头的特殊性,为和透视表保持一致,同时兼容多列头的场景,明细表的标记会对列头和数值同时生效. 如希望标记只对数值生效,可以参考下文 自定义标记

import { S2Event } from '@antv/s2';
const s2DataConfig = {
fields: {
columns: ['type', 'price', 'province', 'city'],
},
};
const s2Options = {
width: 600,
height: 600,
interaction: {
linkFields: ['type', 'price', 'province'],
}
};
const s2 = new TableSheet(container, s2DataConfig, s2Options);
s2.on(S2Event.GLOBAL_LINK_FIELD_JUMP, (data) => {
const { field, meta, record } = data;
const value = record?.[field];
// 拼装自己的跳转地址
location.href = `https://path/to/${field}=${value}`;
});
await s2.render();

自定义标记

除了配置 行头/列头/数值 字段外,支持根据单元格信息自定义标记,满足更多使用场景。查看示例

注意

数值和表头的单元格数据结构不同,请注意区分,meta 对应关系如下:

  1. 数值单元格对应 ViewMeta
  2. 表头单元格对应 Node
import { Node } from '@antv/s2'
const s2Options = {
width: 600,
height: 600,
interaction: {
linkFields: (meta) => {
// 不标记列头
if (meta instanceof Node) {
return false;
}
// 根据数值动态标记
return meta?.fieldValue === '浙江' || meta?.fieldValue >= 10;
}
}
};