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

结合@antv/g2

上一篇
迷你图表
下一篇
自定义渲染

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 足够了解,并且熟悉 AntV/G 渲染引擎的相关内容。

除了 mini 图绘制外,S2 也支持 自定义单元格 的方式结合 AntV/G2 来实现一个组合图表,也可以绘制 AntV/G 的基础图形。

数据格式

数值格式依旧是 { values: G2 图表数据 (Spec) }

{
- number: string
+ number: {
+ values: { ...G2 Spec }
+ }
}
const s2DataConfig = {
data: [
{
- number: 123,
+ number: {
+ values: {
+ type: 'line',
+ data: [
+ {
+ year: '2017',
+ value: -368,
+ },
+ ],
+ encode: { x: 'year', y: 'value' },
+ }
+ },
}
]
}

1.1 数据准备

提示

数据源类型为 MultiData 支持 普通数值单元格 和 图表单元格 共存。图表数据源为标准的 G2 Spec.

const s2DataConfig = {
data: [
// 普通数据
{
number: 1343,
province: '浙江省',
city: '杭州市',
type: '办公用品',
sub_type: '纸张',
},
{
number: {
// G2 图表数据 (Spec) https://g2.antv.antgroup.com/examples/general/interval/#column
values: {
type: 'view',
autoFit: true,
padding: 0,
axis: false,
children: [
{
type: 'image',
style: {
src: 'https://gw.alipayobjects.com/zos/rmsportal/NeUTMwKtPcPxIFNTWZOZ.png',
x: '50%',
y: '50%',
width: '100%',
height: '100%',
},
tooltip: false,
},
{
type: 'heatmap',
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/heatmap.json',
},
encode: { x: 'g', y: 'l', color: 'tmp' },
style: { opacity: 0 },
tooltip: false,
},
],
},
},
province: '浙江省',
city: '舟山市',
type: '办公用品',
sub_type: '笔',
},
],
};

1.2 安装 G2

该功能依赖 G2 的 `5.x` 版本,请确保使用了正确的版本

pnpm add @antv/g2

1.3 在 @antv/s2 中使用

1. 使用 @antv/s2/extends 中导出的 ChartDataCell
import { PivotSheet } from '@antv/s2';
import { ChartDataCell } from '@antv/s2/extends';
const s2 = new PivotSheet(container, s2DataConfig, {
dataCell: (viewMeta, spreadsheet) => new ChartDataCell(viewMeta, spreadsheet)
});
await s2.render();

提示

本质上就是使用 G2 提供的 renderToMountedElement 将图表挂载在 S2 单元格实例上

查看示例

2.4 在 @antv/s2-react 使用

如果希望在 React 中使用,除了上述的方式外,也可以直接使用 <SheetComponent sheetType="chart" />, 内部封装了 ChartDateCell。

import { SheetComponent } from '@antv/s2-react';
function App() {
return (
<SheetComponent
sheetType="chart"
dataCfg={s2DataConfig}
/>
)
}
查看 React 示例

2.5 效果

preview