Token导航 LogoToken导航TokenDH.com
研究检索需要联网clawhub未标认证来源可访问clear审计通过

antd-table-s2-guideantd 表 s2 指南

Agent Skill

antd-table-s2-guide 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,469

周安装

190

GitHub Stars

公开资料未说明

下载量

1,566
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:antd-table-s2-guide(antd 表 s2 指南)
来源仓库:https://github.com/chenxiaoyu0124-web/antd-table-s2-guide
安装命令:
openclaw skills install antd-table-s2-guide
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install antd-table-s2-guide

简介

AntV S2 表格渲染千万级数据,支持透视、明细表、多维分析,提供性能优化和Vue3集成方案。

SKILL.md

name
antd-table-s2-guide
description
AntV S2 海量数据表格实战指南。当需要渲染大量数据表格、交叉表、明细表时使用。涵盖S2核心概念(Sheet/Spreadsheet/DataCell/Style)、配置优化、大数据量性能调优(虚拟滚动、冻结列、条件格式)、Vue3集成方案。适用于半导体数据看板、财务报表、运营分析等场景。

AntV S2 海量数据表格指南

核心概念

import { PivotSheet, TableSheet, S2Options, S2Event } from '@antv/s2'

// PivotSheet - 透视分析表(行头+列头交叉)
// TableSheet - 明细表(扁平数据,无行列头)

Vue3 集成模板

<template>
  <div ref="containerRef" class="s2-container" />
</template>

<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount } from 'vue'
import { PivotSheet } from '@antv/s2'

const containerRef = ref<HTMLDivElement>()

let s2Instance: PivotSheet | null = null

onMounted(() => {
  const container = containerRef.value!
  s2Instance = new PivotSheet(container, s2Options)
  s2Instance.render()
})

onBeforeUnmount(() => {
  s2Instance?.dispose()
})
</script>

<style scoped>
.s2-container {
  width: 100%;
  height: 600px; /* 必须有明确高度 */
}
</style>

透视表配置

const s2Options: S2Options = {
  width: 800,
  height: 600,
  hierarchyType: 'grid', // 'grid' | 'tree'

  // 数据字段定义
  fields: {
    rows: ['province', 'city'],      // 行维度
    columns: ['category', 'product'], // 列维度
    values: ['sales', 'profit'],      // 度量值
    valueInCols: true,                // 指标在列头展示
  },

  // 数据
  data: rawData,

  // 主题
  theme: {
    name: 'default',
    palette: {
      // 自定义条件格式色阶
      condition: {
        positive: { fill: '#29A294' },
        negative: { fill: '#E86452' },
      },
    },
  },

  // 交互
  interaction: {
    hoverHighlight: true,
    selectedCellsSpotlight: true,
    linkFields: ['product'], // 可点击的字段
  },
}

性能优化

1. 虚拟滚动(大数据量必备)

const s2Options: S2Options = {
  // S2 默认开启虚拟滚动,但需要确保:
  // 1. 容器有明确高度
  // 2. 不要关闭 frozenRowCount / frozenColCount 中的大量行列
  frozenRowCount: 1,   // 只冻结表头
  frozenColCount: 0,   // 冻结列越多性能越差
  scrollSpeedRatio: {
    horizontal: 0.3,    // 水平滚动速度
    vertical: 0.3,
  },
}

2. 条件格式优化

// ❌ 避免:每个单元格都计算样式
// ✅ 正确:用内置条件格式规则
const conditions = {
  text: [
    {
      field: 'status',
      mapping: (value) => {
        if (value === '异常') return { fill: '#E86452', textFill: '#fff' }
        return {}
      },
    },
  ],
  background: [
    {
      field: 'sales',
      mapping: (value) => {
        // 用线性插值,不要用分段判断
        const ratio = Math.min(Math.abs(value) / 10000, 1)
        return { fill: `rgba(232, 100, 82, ${ratio * 0.3})` }
      },
    },
  ],
}

3. 大数据量数据准备

// ❌ 前端一次性处理 10 万+ 行
// ✅ 分页加载 + 服务端聚合
async function loadData(page: number, size: number) {
  const res = await fetch(`/api/data?page=${page}&size=${size}`)
  return res.json()
}

// S2 支持动态更新数据
s2Instance.setData(newData)

4. 减少不必要的重渲染

// ❌ 频繁更新
watch(searchQuery, () => {
  s2Instance.setData(filteredData) // 每次输入都触发
})

// ✅ 防抖更新
import { useDebounceFn } from '@vueuse/core'
const debouncedUpdate = useDebounceFn((data) => {
  s2Instance.setData(data)
}, 300)

watch(searchQuery, () => {
  debouncedUpdate(filteredData.value)
})

明细表(TableSheet)

import { TableSheet } from '@antv/s2'

const tableSheet = new TableSheet(container, {
  fields: {
    columns: ['id', 'name', 'value', 'status', 'date'],
  },
  data: tableData,
  // 明细表专用配置
  style: {
    cellCfg: {
      width: 120,
      height: 36,
    },
  },
})

常用事件

// 单元格点击
s2Instance.on(S2Event.DATA_CELL_CLICK, (event) => {
  console.log('clicked:', event)
})

// 链接字段点击
s2Instance.on(S2Event.GLOBAL_LINK_FIELD_JUMP, (data) => {
  window.open(data.fieldValue)
})

// 排序
s2Instance.on(S2Event.RANGE_SORTED, (data) => {
  console.log('sorted:', data)
})

踩坑记录

  1. 容器必须有明确高度,否则 S2 无法计算虚拟滚动区域
  2. frozenColCount 不要超过 3,冻结列越多渲染压力越大
  3. setData 会重新渲染,大数据量时配合防抖使用
  4. theme 修改要重新调用 setTheme(),不能直接改 options
  5. Vue3 中要在 onBeforeUnmount 调用 dispose(),否则内存泄漏

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

79.52%
按下载量换算1,245

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills