Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antvis/s2
⚡️ A practical visualization library for tabular analysis.
https://github.com/antvis/s2
canvas editable-table javascript pivot-grid pivot-tables react sheet spreadsheet table typescript vue
Last synced: 19 days ago
JSON representation
⚡️ A practical visualization library for tabular analysis.
- Host: GitHub
- URL: https://github.com/antvis/s2
- Owner: antvis
- License: mit
- Created: 2020-12-28T06:55:51.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-21T07:33:08.000Z (6 months ago)
- Last Synced: 2024-05-21T19:17:32.038Z (6 months ago)
- Topics: canvas, editable-table, javascript, pivot-grid, pivot-tables, react, sheet, spreadsheet, table, typescript, vue
- Language: TypeScript
- Homepage: https://s2.antv.antgroup.com
- Size: 151 MB
- Stars: 1,405
- Watchers: 46
- Forks: 177
- Open Issues: 102
-
Metadata Files:
- Readme: README.en-US.md
- Contributing: CONTRIBUTING.en-US.md
- License: LICENSE
Awesome Lists containing this project
- awesome-canvas - S2 - ⚡️ Practical analytical Table rendering core lib. ![](https://img.shields.io/github/stars/antvis/s2?style=social) ![](https://img.shields.io/github/forks/antvis/s2?style=social) (Libraries / Charts Libraries)
README
[简体中文](./README.md) |
EnglishS2
S2 is a solution in multi-dimensional cross-analysis tables, which provides data-driven analysis table components.
It supplements multi-dimensional analysis tables in the industry. By providing the core library, essential components,
demo components and expansion capabilities, it allows developers to use it quickly and freely.## 🏠 Homepage
![homepage](https://gw.alipayobjects.com/zos/antfincdn/6R5Koawk9L/huaban%2525202.png)
* [Homepage](https://s2.antv.antgroup.com/en)
* [Demos](https://s2.antv.antgroup.com/en/examples)## ✨ Features
1. Multi-dimensional cross-analysis: Say goodbye to a single analysis dimension and fully embrace the free combination analysis of any dimension.
2. High performance: It can support rendering in less than 8s under the total amount of millions of data and achieve second-level rendering through partial drilling.
3. High scalability: Support any custom extensions (including but not limited to layout, style, interaction, data hook flow, etc.).
4. Out of the box: Provide out-of-the-box `React` and `Vue3` table components and supporting analysis components in different analysis scenarios. You only need a simple configuration to realize the table rendering
of complex scenes quickly.
5. High interaction: support rich interaction forms (single selection, circle selection, row selection, column selection, freeze line header, width and height dragging, custom interaction, etc.)## 📦 Installation
```bash
$ npm install @antv/s2 --save
# yarn add @antv/s2 --save
# pnpm install @antv/s2 --save
```## 🔨 Getting Started
### 1. Data Preparation
s2DataConfig
```ts
const s2DataConfig = {
fields: {
rows: ['province', 'city'],
columns: ['type'],
values: ['price'],
},
data: [
{
province: '浙江',
city: '杭州',
type: '笔',
price: '1',
},
{
province: '浙江',
city: '杭州',
type: '纸张',
price: '2',
},
{
province: '浙江',
city: '舟山',
type: '笔',
price: '17',
},
{
province: '浙江',
city: '舟山',
type: '纸张',
price: '0.5',
},
{
province: '吉林',
city: '长春',
type: '笔',
price: '8',
},
{
province: '吉林',
city: '白山',
type: '笔',
price: '9',
},
{
province: '吉林',
city: '长春',
type: ' 纸张',
price: '3',
},
{
province: '吉林',
city: '白山',
type: '纸张',
price: '1',
},
],
};
```### 2. Options Preparation
```ts
const s2Options = {
width: 600,
height: 600,
}
```### 3. Component Rendering
```html
``````ts
import { PivotSheet } from '@antv/s2';const container = document.getElementById('container');
const s2 = new PivotSheet(container, s2DataCfg, s2Options);
s2.render();
```### 4. Preview
![result](https://gw.alipayobjects.com/zos/antfincdn/vCukbtVNvl/616f7ef1-e626-4225-99f8-dc8f6ca630dd.png)
### 📦 Packages
| Package | Latest | Beta | Alpha | Next | Size | Download |
| - | - | - | - | - | - | - |
| [@antv/s2](https://github.com/antvis/S2/tree/master/packages/s2-core) | ![latest](https://img.shields.io/npm/v/@antv/s2/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2.svg) |
| [@antv/s2-react](https://github.com/antvis/S2/tree/master/packages/s2-react) | ![latest](https://img.shields.io/npm/v/@antv/s2-react/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-react/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-react/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-react/next.svg)| ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-react@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-react.svg) |
| [@antv/s2-vue](https://github.com/antvis/S2/tree/master/packages/s2-vue) | ![latest](https://img.shields.io/npm/v/@antv/s2-vue/latest.svg) | ![beta](https://img.shields.io/npm/v/@antv/s2-vue/beta.svg) | ![alpha](https://img.shields.io/npm/v/@antv/s2-vue/alpha.svg) | ![next](https://img.shields.io/npm/v/@antv/s2-vue/next.svg) | ![size](https://img.badgesize.io/https:/unpkg.com/@antv/s2-vue@latest/dist/index.min.js?label=gzip%20size&compression=gzip) | ![download](https://img.shields.io/npm/dm/@antv/s2-vue.svg) |## 👤 Author
[**@AntV**](https://github.com/orgs/antvis/people)
## 🤝 Contributing
Contributions, issues and feature requests are welcome.
Feel free to check [issues](https://github.com/antvis/S2/issues) page if you want to contribute.> S2 use pnpm as package manager
```bash
git clone [email protected]:antvis/S2.gitcd S2
pnpm install # or pnpm bootstrap
# build all
pnpm build# debug s2-core
pnpm core:start# debug s2-react
pnpm react:playground# debug s2-vue
pnpm vue:playground# unit test
pnpm test# check the code style and the type definition
pnpm lint# start the website
pnpm site:start
```## 👁️ Insight
![Alt](https://repobeats.axiom.co/api/embed/ebb7eecb994dc0e3980044aefe43eb81302e3632.svg "Repobeats analytics image")
## 📧 Contact Us
## 👬 Contributors
![https://github.com/antvis/s2/graphs/contributors](https://contrib.rocks/image?repo=antvis/s2)
## 📄 License
MIT@[AntV](https://github.com/antvis).