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

如果你恰好看到了这篇文章,你一定是希望对这个项目贡献自己的一份力量。这是一个开源项目,我们也有繁忙的业务要做,是用自己的业余时间在维护,为爱发电,精力有限,所以有时候 issue 响应速度不是那么及时,如果你遇到了问题,或者对 Issues 和 Discussions 列表的问题感兴趣,可以直接认领并尝试修复,帮助 S2 变得更好,而不是一味的埋怨和催促,我们不是甲方乙方的关系。

🫡 欢迎任何形式的贡献

"我代码水平不行", "会不会受到鄙视?", "会不会不太好?", 放心,不存在的!

我们欢迎任何形式的贡献,不管是一个错别字的修改,还是一次友好的建议,不管是通过提交 Issue, 还是一个帅气 pull request, 亦或是参与 discussions 的讨论。

如果你遇到了问题,或者对 Issues 和 Discussions 列表的问题感兴趣,可以直接认领并尝试修复,帮助 S2 变得更好,期待在 贡献者列表 里看见你的头像。

✍️ 分支管理

目前我们主要基于 next 分支开发,有任何修改,请基于 next 拉一个分支,然后通过 PR 的形式提交,我们集成了钉钉机器人,会第一次时间 review 你的 PR, 给与反馈。

  • master: 1.x 版本
  • next: 2.x 版本

🐛 提交 Bug 反馈

很抱歉又写了一些 bug, 但求友好的提交一个有意义的 bug 反馈,谁也不希望反馈的 bug 是这样:

preview

没有版本信息,没有复现步骤,没有问题描述,没有代码片段,开局一句话,内容全靠猜。

首先选择 Bug report

preview

按照 Issue 模板 填写相关信息。 是的,这些步骤稍微有一些繁琐,但的确是有效且必须的,每个用户使用的场景都不同,系统环境,软件版本,又或是需要一些特定的步骤才能复现 bug, 这个时候说清楚,可以节省大家的时间!

preview

🙋‍♂️ Pull Request

示例 PR (pr 描述参考)

  1. fork 项目 并 clone 下来 (或者使用 GitHub 的 Codespaces 功能,非常方便).
  2. 安装依赖:pnpm install 或者 pnpm bootstrap 然后本地启动项目。
  3. 提交你的改动,commit 请遵守 AngularJS Git Commit Message Conventions.
  4. 如果你的改动是修复 bug, 还可以在提交信息后面加上 close #issue 号, 这样可以在 pr 合并后,可以自动关闭对应的 issue, 比如 fix: render bug close #123.
  5. 确保加上了对应的单元测试和文档 (如果有 Snapshot UI 快照 (.snap 文件)更新,可以运行 pnpm core:test -- -u 和 pnpm react:test -- -u 自动更新,并一起提交上来,请勿手动编辑)
  6. 所有 Lint 和 Test 检查通过后,并且 review 通过,我们会合并你的 pr.

preview

⌨️ 本地开发

S2 使用 pnpm 作为包管理器

git clone git@github.com:antvis/S2.git
cd S2
# 切换到 2.x 分支
git checkout next
# 安装依赖
pnpm install # 或者 pnpm bootstrap
# 打包
pnpm build
# 调试 s2-core
pnpm core:start
# 调试 s2-react 和 s2-core(推荐)
pnpm core:build-esm # 首次运行需要先执行一次(安装依赖后自动执行)
pnpm react:playground
# 调试 s2-react-components
pnpm react-components:playground
# 调试 s2-vue 和 s2-core
pnpm vue:playground
# 单元测试
pnpm test
pnpm core:test
pnpm react:test
# 更新单元格测试快照
pnpm core:test -- -u
pnpm react:test -- -u
# 代码风格和类型检测
pnpm lint
# 本地启动官网
pnpm build # 首次运行官网需要先执行一次
pnpm site:start

调试功能

提示

安装依赖后,会自动构建 @antv/s2, 如果是首次运行,并且自动构建失败,提示找不到 @antv/s2/esm 之类的报错,手动执行一次 pnpm core:build-esm 即可。

根目录运行 pnpm react:playground 来运行 S2, 可用于调试 @antv/s2 和 @antv/s2-react, 提供了一些常用的图表场景和配置。

preview

S2 基于 AntV/G 渲染引擎绘制,如果想像 DOM 一样调试的话,可以安装 G 开发者工具

  1. 访问 chrome://extensions/ 安装后
preview
  1. 开始调试
preview

调试单测

如果你想查看单测的运行结果,除了常规的 pnpm core:test 和 pnpm react:test 来运行测试之外,还可以 可视化的调试单测(基于 jest-electron), 可以更快的发现单测的问题。

  1. 选择单测

命令行运行 pnpm core:start 或者 pnpm react:start, 可以选择测试来运行

preview

也可以指定具体的测试文件名,跳过选择的步骤直接运行。

pnpm core:start packages/s2-core/__tests__/spreadsheet/scroll-spec.ts
pnpm react:start packages/s2-react/__tests__/spreadsheet/spread-sheet-spec.tsx
  1. 查看结果

因为本质上就是一个浏览器,如果单测结果不符合预期,可以正常打断点进行调试,快速分析原因。

preview

调试文档

如果有涉及到官网文档的改动,可以在本地调试运行,便于更直观的看到改动效果。

  • 使用文档 - s2-site/docs/manual
  • API 文档 - s2-site/docs/api
  • 图表示例 - s2-site/examples
# 开发
pnpm site:start
# 预览
pnpm site:preview
preview

如果是新增图表示例,需要在对应目录下的 meta.json 添加相应的配置信息,其中 "screenshot" 是示例的截图,不需要填写,PR 合并后我们会进行上传。

{
"demos": [
+ {
+ "filename": "filename.ts",
+ "title": {
+ "zh": "中文描述",
+ "en": "English description"
+ },
+ "screenshot": "",
+ "new": true
+ }
]
}

📦 版本

提示

创建 S2 表格有三种方式,基础类版本 @antv/s2 和 基于 @antv/s2 封装的 React 和 Vue3 版本:

  1. 基础版本 @antv/s2: 基于 Canvas 和 AntV/G 6.0 开发,提供基本的表格展示/交互等能力。

版本依赖:无

  1. React 版本 @antv/s2-react: 基于 React 18, 和 @antv/s2 封装,兼容 React 16/17 版本,同时提供配套的 分析组件 (@antv/s2-react-components).

版本依赖:

"peerDependencies": {
"@antv/s2": "^2.0.0",
"react": ">=16.9.0",
"react-dom": ">=16.9.0"
}
  1. Vue 版本 @antv/s2-vue: 基于 Vue3, @antv/s2 , ant-design-vue@3.x 封装。停止维护

版本依赖:

"peerDependencies": {
"@antv/s2": "^2.0.0",
"ant-design-vue": "^3.2.0",
"vue": ">=3.x"
}

也就是说 @antv/s2 和框架无关,无任何额外依赖, 你可以在 Vue, Angular 等任意框架中使用。

包名稳定版包大小下载量
@antv/s2latestsizedownload
@antv/s2-reactlatestsizedownload
@antv/s2-react-componentslatestsizedownload
@antv/s2-vue(停止维护)latestsizedownload

如何获取新版本发布通知?

  • 订阅:https://github.com/antvis/S2/releases.atom 来获得新版本发布的通知。
  • Watch S2 代码仓库, 选择 Custom - Releases 来获取消息推送。

preview