Loading...
基于 @antv/s2
封装的 React
版开箱即用的组件 <SheetComponent />
import { SheetComponent } from '@antv/s2-react';import '@antv/s2-react/dist/s2-react.min.css';<SheetComponent sheetType="pivot" />
功能描述: React SheetComponent 组件的 props 参数
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
sheetType | 表格类型: 1. pivot : 透视表 2. table : 明细表 3. gridAnalysis : 网格分析表 4. strategy : 趋势分析表 5. editable : 编辑表 | pivot | table | gridAnalysis | strategy | editable | pivot | |
spreadsheet | 自定义表 | (container: HTMLElement | string , dataCfg: S2DataConfig, options: SheetComponentOptions) => SpreadSheet | ||
dataCfg | 透视表数据映射相关配置项 | S2DataConfig | ✓ | |
options | 透视表属性配置项 | SheetComponentOptions | ✓ | |
partDrillDown | 维度下钻相关属性 | PartDrillDown | ||
adaptive | 是否根据窗口大小自适应 | boolean | { width?: boolean, height?: boolean, getContainer: () => HTMLElement } | false | |
themeCfg | 自定义透视表主题样式 | ThemeCfg | ||
loading | 控制表格的加载状态 | boolean | ||
header | 表头配置项 | HeaderCfgProps | ||
onRangeSort | 组内排序时触发回调事件 | (params: SortParam[] ) => void; | ||
onRowCellHover | 行头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
onRowCellClick | 行头鼠标单击事件 | (data: TargetCellInfo) => void | ||
onRowCellDoubleClick | 行头鼠标双击事件 | (data: TargetCellInfo) => void | ||
onRowCellContextMenu | 行头右键菜单事件 | (data: TargetCellInfo) => void | ||
onRowCellMouseDown | 行头鼠标按下事件 | (data: TargetCellInfo) => void | ||
onRowCellMouseUp | 行头鼠标放开事件 | (data: TargetCellInfo) => void | ||
onRowCellMouseMove | 行头鼠标移动事件 | (data: TargetCellInfo) => void | ||
onRowCellCollapsed | 节点展开/收起事件回调 | ({ isCollapsed: boolean , collapseFields: Record<string, boolean> , node: Node }) => void; | ||
onRowCellAllCollapsed | 节点全部展开/收起的事件回调 | (isCollapsed: boolean ) => void; | ||
onRowCellScroll | 行头单元格滚动事件 | ({position: CellScrollPosition} ) => void; | ||
onRowCellRender | 行头单元格渲染事件 | ( cell: Cell ) => void | ||
onRowCellSelected | 行头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
onColCellHover | 列头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
onColCellClick | 列头鼠标单击事件 | (data: TargetCellInfo) => void | ||
onColCellDoubleClick | 列头鼠标双击事件 | (data: TargetCellInfo) => void | ||
onColCellContextMenu | 列头右键菜单事件 | (data: TargetCellInfo) => void | ||
onColCellMouseDown | 列头鼠标按下事件 | (data: TargetCellInfo) => void | ||
onColCellMouseUp | 列头鼠标松开事件 | (data: TargetCellInfo) => void | ||
onColCellMouseMove | 列头鼠标移动事件 | (data: TargetCellInfo) => void | ||
onColCellExpanded | 开启隐藏列头(tooltip.operation.hiddenColumns = true)后,列头展开的事件回调 | (expandedNode: Node) => void; | ||
onColCellHidden | 开启隐藏列头(tooltip.operation.hiddenColumns = true)后,列头隐藏的事件回调 | ( data: { currentHiddenColumnsInfo:HiddenColumnsInfo; hiddenColumnsDetail:HiddenColumnsInfo[]} ) => void; | ||
onColCellRender | 列头单元格渲染事件 | ( cell: Cell ) => void | ||
onColCellSelected | 列头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
onDataCellHover | 数值单元格鼠标悬停事件 | (data: TargetCellInfo) => void | ||
onDataCellClick | 数值单元格鼠标点击事件 | (data: TargetCellInfo) => void | ||
onDataCellDoubleClick | 数值单元格双击事件 | (data: TargetCellInfo) => void | ||
onDataCellContextMenu | 数值单元格右键菜单事件 | (data: TargetCellInfo) => void | ||
onDataCellMouseDown | 数值单元格鼠标按下事件 | (data: TargetCellInfo) => void | ||
onDataCellMouseUp | 数值单元格鼠标松开事件 | (data: TargetCellInfo) => void | ||
onDataCellMouseMove | 数值单元格鼠标移动事件 | (data: TargetCellInfo) => void | ||
onDataCellBrushSelection | 数值单元格刷选事件 | ( dataCells: DataCell[] ) => void | ||
onDataCellSelectMove | 数值单元格键盘方向键移动事件 | (metas: CellMeta[]) => void | ||
onDataCellEditStart | 数值单元格编辑开始(暂只支持编辑表) | (meta: ViewMeta, cell: S2CellType) => void | ||
onDataCellEditEnd | 数值单元格编辑完成(暂只支持编辑表) | (meta: ViewMeta, cell: S2CellType) => void | ||
onDataCellRender | 数值单元格渲染事件 | ( cell: Cell ) => void | ||
onDataCellSelected | 数值单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
onCornerCellHover | 角头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
onCornerCellClick | 角头鼠标单击事件 | (data: TargetCellInfo) => void | ||
onCornerCellDoubleClick | 角头鼠标双击事件 | (data: TargetCellInfo) => void | ||
onCornerCellContextMenu | 角头右键菜单事件 | (data: TargetCellInfo) => void | ||
onCornerCellMouseUp | 角头鼠标按下事件 | (data: TargetCellInfo) => void | ||
onCornerCellMouseUp | 角头鼠标松开事件 | (data: TargetCellInfo) => void | ||
onCornerCellMouseMove | 角头鼠标移动事件 | (data: TargetCellInfo) => void | ||
onCornerCellRender | 角头单元格渲染事件 | ( cell: Cell ) => void | ||
onCornerCellSelected | 角头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
onMergedCellsHover | 合并单元格鼠标悬停事件 | (data: TargetCellInfo) => void | ||
onMergedCellsClick | 合并单元格鼠标点击事件 | (data: TargetCellInfo) => void | ||
onMergedCellsDoubleClick | 合并单元格鼠标双击事件 | (data: TargetCellInfo) => void | ||
onMergedCellsContextMenu | 合并单元格右键菜单事件 | (data: TargetCellInfo) => void | ||
onMergedCellsMouseDown | 合并单元格按下事件 | (data: TargetCellInfo) => void | ||
onMergedCellsMouseUp | 合并单元格松开事件 | (data: TargetCellInfo) => void | ||
onMergedCellsMouseMove | 合并单元格移动事件 | (data: TargetCellInfo) => void | ||
onMergedCellsRender | 合并单元格渲染事件 | ( cell: Cell ) => void | ||
onSeriesNumberCellRender | 序号单元格渲染事件 | ( cell: Cell ) => void | ||
onRangeSort | 组内排序时触发回调事件(暂只支持透视表) | (params: SortParam[] ) => void; | ||
onRangeSorted | 组内排序结束触发回调事件(暂只支持透视表) | (event: FederatedPointerEvent ) => void; | ||
onRangeFilter | 筛选时触发回调事件 | (data: { filterKey: string; filteredValues: string[] } ) => void; | ||
onRangeFiltered | 筛选结束触发回调事件 | (data: DataType[] ) => void; | ||
onLayoutCellRender | 单个单元格布局渲染完成事件 | cell: S2CellType | ||
onLayoutAfterHeaderLayout | 表头布局结构准备完成事件 | (layoutResult: LayoutResult ) => void; | ||
onLayoutPagination | 分页事件 | ({ pageSize: number; pageCount: number; total: number; current: number;} ) => void; | ||
onLayoutCellScroll | 单元格滚动事件 (已废弃,请使用 onScroll 代替) | ({position: CellScrollPosition} ) => void; | ||
onLayoutAfterCollapseRows | 树状模式下收起行头后的事件回调 | ({ collapseFields: Record<string, boolean> , meta: Node }) => void; | ||
onBeforeRender | 开始 render 前的事件 | () => void; | ||
onAfterRender | render 完成的事件 | () => void; | ||
onMounted | 组件层表格挂载完成事件,可拿到表实例 详情 | (spreadsheet: SpreadSheet) => void; | ||
onUpdate | 组件层表格更新事件,当 数据 (S2DataConfig) 或 配置 (S2Options) 更新时触发,可手动控制更新时的 渲染模式 | (renderOptions: S2RenderOptions) => S2RenderOptions | void | ||
onUpdateAfterRender | 组件层表格更新事件,当 数据 (S2DataConfig) 或 配置 (S2Options) 更新时,并且在重渲染 s2.render() 完成后触发 | (renderOptions: S2RenderOptions) => void | ||
onLoading | 组件层加载状态变更事件 | (loading: boolean) => void | ||
onDestroy | 表格销毁事件 | () => void; | ||
onLayoutResize | 表格整体 changeSize 事件 | (params: ResizeParams) => void; | ||
onLayoutResizeSeriesWidth | 表格序号行宽事件 | (params: ResizeParams) => void; | ||
onLayoutResizeRowWidth | 行头单元格宽度更改事件 | (params: ResizeParams) => void; | ||
onLayoutResizeRowHeight | 行头单元格高度更改事件 | (params: ResizeParams) => void; | ||
onLayoutResizeColWidth | 列头单元格宽度更改事件 | (params: ResizeParams) => void; | ||
onLayoutResizeColHeight | 列头单元格高度更改事件 | (params: ResizeParams) => void; | ||
onLayoutResizeTreeWidth | 树状行头整体宽度更改事件 | (params: ResizeParams) => void; | ||
onLayoutResizeMouseDown | resize 热区鼠标按下事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
onLayoutResizeMouseUp | resize 热区鼠标松开事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
onLayoutResizeMouseMove | resize 热区鼠标移动事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
onKeyBoardDown | 键盘按下事件 | (event: KeyboardEvent) => void | ||
onKeyBoardUp | 键盘松开事件 | (event: KeyboardEvent) => void | ||
onCopied | 复制事件 | (data: CopyableList) => void | ||
onActionIconHover | 行头操作 icon 悬停事件 | (event: FederatedPointerEvent) => void | ||
onActionIconClick | 行头操作 icon 点击事件 | (event: FederatedPointerEvent) => void | ||
onContextMenu | 右键单元格单击事件 (禁用右键菜单不生效?) | (event: FederatedPointerEvent) => void | ||
onMouseHover | 表格鼠标悬停事件 | (event: FederatedPointerEvent) => void | ||
onMouseUp | 表格鼠标松开事件 | (event: FederatedPointerEvent) => void | ||
onSelected | 单元格选中事件 | (cells: Cell[], detail: CellSelectedDetail ) => void | ||
onReset | 交互状态重置事件 | (event: KeyboardEvent) => void | ||
onLinkFieldJump | 链接字段跳转事件 | (data: { field: string; meta: Node | ViewMeta; record: Data }) => void | ||
onScroll | 单元格滚动事件 (含行头和数值单元格) | ({position: CellScrollPosition} ) => void | ||
onColCellBrushSelection | 批量选中刷选范围内的列头单元格,刷选过程中,显示刷选范围提示蒙层,刷选完成后,弹出 tooltip, 展示被刷选单元格信息 | (cells: ColCell[]) => void; | ||
onRowCellBrushSelection | 批量选中刷选范围内的行头单元格,刷选过程中,显示刷选范围提示蒙层,刷选完成后,弹出 tooltip, 展示被刷选单元格信息(仅支持透视表) | (cells: RowCell[]) => void; |
@antv/s2-react
组件的 options
继承于 S2Options , 有两点不同:
S2Options
变更为 SheetComponentOptions
.Element | string
变为了 ReactNode
, 即可以是任意的 jsx
元素。import type { S2Options } from '@antv/s2';type SheetComponentOptions = S2Options<React.ReactNode>
@antv/s2-vue
现已停止维护,由于精力投入有限,出于维护成本,包下载量等因素综合考虑,从 2.0.0
正式版后不再继续更新,请基于 @antv/s2
自行封装,或 fork 仓库进行二次开发社区版本。
基于 @antv/s2
层封装的 Vue 3.0
版开箱即用的组件 <SheetComponent />
功能描述: Vue SheetComponent 组件的 props,如 <SheetComponent :sheetType="pivot" />
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
sheetType | 表格类型: 1. pivot : 透视表 2. table : 明细表 3. editable : 编辑表 | pivot | table | editable | pivot | |
dataCfg | 透视表数据映射配置项 | S2DataConfig | ✓ | |
options | 透视表属性配置项 | SheetComponentOptions | ✓ | |
adaptive | 是否根据窗口大小自适应 | boolean | { width?: boolean, height?: boolean, getContainer: () => HTMLElement } | false | |
showPagination | 是否显示默认分页 (只有在 options 配置过 pagination 属性才会生效) | boolean | { onShowSizeChange?: (pageSize: number) => void, onChange?: (current: number) => void } | false | |
themeCfg | 自定义表格主题样式 | ThemeCfg | ||
loading | 控制表格的加载状态 | boolean |
功能描述: Vue SheetComponent 组件的 events,<SheetComponent @rowCellClick="handleRowCellClick" />
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
spreadsheet | 自定义表 | (container: HTMLElement | string , dataCfg: S2DataConfig, options: SheetComponentOptions) => SpreadSheet | ||
rangeSort | 组内排序时触发回调事件 | (params: SortParam[] ) => void; | ||
rowCellClick | 行头鼠标单击事件 | (data: TargetCellInfo) => void | ||
rowCellHover | 行头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
rowCellClick | 行头鼠标单击事件 | (data: TargetCellInfo) => void | ||
rowCellDoubleClick | 行头鼠标双击事件 | (data: TargetCellInfo) => void | ||
rowCellContextMenu | 行头右键菜单事件 | (data: TargetCellInfo) => void | ||
rowCellMouseDown | 行头鼠标按下事件 | (data: TargetCellInfo) => void | ||
rowCellMouseUp | 行头鼠标放开事件 | (data: TargetCellInfo) => void | ||
rowCellMouseMove | 行头鼠标移动事件 | (data: TargetCellInfo) => void | ||
rowCellCollapseTreeRows | 树状结构下点击行头收起展开按钮 | (params: { id: number ; isCollapsed: boolean ; node: Node }) => void | ||
rowCellScroll | 行头单元格滚动事件 | ({position: CellScrollPosition} ) => void; | ||
rowCellCollapsed | 节点展开/收起事件回调 | ({ isCollapsed: boolean , collapseFields: Record<string, boolean> , node: Node }) => void; | ||
rowCellAllCollapsed | 节点全部展开/收起的事件回调 | (isCollapsed: boolean ) => void; | ||
rowCellRender | 行头单元格渲染事件 | ( cell: Cell ) => void | ||
rowCellSelected | 行头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
colCellHover | 列头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
colCellClick | 列头鼠标单击事件 | (data: TargetCellInfo) => void | ||
colCellDoubleClick | 列头鼠标双击事件 | (data: TargetCellInfo) => void | ||
colCellContextMenu | 列头右键菜单事件 | (data: TargetCellInfo) => void | ||
colCellMouseDown | 列头鼠标按下事件 | (data: TargetCellInfo) => void | ||
colCellMouseUp | 列头鼠标松开事件 | (data: TargetCellInfo) => void | ||
colCellMouseMove | 列头鼠标移动事件 | (data: TargetCellInfo) => void | ||
colCellExpanded | 开启隐藏列头(tooltip.operation.hiddenColumns = true)后,列头展开的事件回调 | (expandedNode: Node) => void | ||
colCellHidden | 开启隐藏列头(tooltip.operation.hiddenColumns = true)后,列头隐藏的事件回调 | (data: { currentHiddenColumnsInfo:HiddenColumnsInfo; hiddenColumnsDetail:HiddenColumnsInfo[] } ) => void; | ||
colCellRender | 列头单元格渲染事件 | ( cell: Cell ) => void | ||
colCellSelected | 列头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
dataCellHover | 数值单元格鼠标悬停事件 | (data: TargetCellInfo) => void | ||
dataCellClick | 数值单元格鼠标点击事件 | (data: TargetCellInfo) => void | ||
dataCellDoubleClick | 数值单元格双击事件 | (data: TargetCellInfo) => void | ||
dataCellContextMenu | 数值单元格右键菜单事件 | (data: TargetCellInfo) => void | ||
dataCellMouseDown | 数值单元格鼠标按下事件 | (data: TargetCellInfo) => void | ||
dataCellMouseUp | 数值单元格鼠标松开事件 | (data: TargetCellInfo) => void | ||
dataCellMouseMove | 数值单元格鼠标移动事件 | (data: TargetCellInfo) => void | ||
dataCellBrushSelection | 数值单元格刷选事件 | (brushRangeDataCells: DataCell[] ) => void | ||
dataCellScroll | 数值单元格滚动事件 | ({position: CellScrollPosition} ) => void; | ||
dataCellSelected | 数值单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
cornerCellHover | 角头鼠标悬停事件 | (data: TargetCellInfo) => void | ||
cornerCellClick | 角头鼠标单击事件 | (data: TargetCellInfo) => void | ||
cornerCellDoubleClick | 角头鼠标双击事件 | (data: TargetCellInfo) => void | ||
cornerCellContextMenu | 角头右键菜单事件 | (data: TargetCellInfo) => void | ||
cornerCellMouseUp | 角头鼠标按下事件 | (data: TargetCellInfo) => void | ||
cornerCellMouseUp | 角头鼠标松开事件 | (data: TargetCellInfo) => void | ||
cornerCellMouseMove | 角头鼠标移动事件 | (data: TargetCellInfo) => void | ||
cornerCellRender | 角头单元格渲染事件 | ( cell: Cell ) => void | ||
cornerCellSelected | 角头单元格选中事件 | ( cells: Cell[], detail: CellSelectedDetail ) => void | ||
mergedCellsHover | 合并单元格鼠标悬停事件 | (data: TargetCellInfo) => void | ||
mergedCellsClick | 合并单元格鼠标点击事件 | (data: TargetCellInfo) => void | ||
mergedCellsDoubleClick | 合并单元格鼠标双击事件 | (data: TargetCellInfo) => void | ||
mergedCellsContextMenu | 合并单元格右键菜单事件 | (data: TargetCellInfo) => void | ||
mergedCellsMouseDown | 合并单元格按下事件 | (data: TargetCellInfo) => void | ||
mergedCellsMouseUp | 合并单元格松开事件 | (data: TargetCellInfo) => void | ||
mergedCellsMouseMove | 合并单元格移动事件 | (data: TargetCellInfo) => void | ||
mergedCellsRender | 合并单元格渲染事件 | ( cell: Cell ) => void | ||
seriesNumberCellRender | 序号单元格渲染事件 | ( cell: Cell ) => void | ||
rangeSort | 组内排序时触发回调事件(暂只支持透视表) | (params: SortParam[] ) => void; | ||
rangeSorted | 组内排序结束触发回调事件(暂只支持透视表) | (event: FederatedPointerEvent ) => void; | ||
rangeFilter | 筛选时触发回调事件 | (data: { filterKey: string; filteredValues: string[] } ) => void; | ||
rangeFiltered | 筛选结束触发回调事件 | (data: DataType[] ) => void; | ||
layoutAfterHeaderLayout | 表头布局结构准备完成事件 | (layoutResult: LayoutResult ) => void; | ||
layoutPagination | 分页事件 | ({ pageSize: number; pageCount: number; total: number; current: number;} ) => void; | ||
layoutCellScroll | 单元格滚动事件 (已废弃,请使用 onScroll 代替) | ({position: CellScrollPosition} ) => void; | ||
beforeRender | 开始 render 前的事件 | () => void; | ||
afterRender | render 完成的事件 | () => void; | ||
mounted | 表格加载完成事件,可拿到表实例 详情 | (spreadsheet: SpreadSheet) => void; | ||
update | 组件层表格更新事件,当 数据 (S2DataConfig) 或 配置 (S2Options) 更新时触发,可手动控制更新时的 渲染模式 | (renderOptions: S2RenderOptions) => S2RenderOptions | void | ||
updateAfterRender | 组件层表格更新事件,当 数据 (S2DataConfig) 或 配置 (S2Options) 更新时,并且在重渲染 s2.render() 完成后触发 | (renderOptions: S2RenderOptions) => void | ||
destroy | 表格销毁事件 | () => void; | ||
layoutResize | 表格整体 changeSize 事件 | (params: ResizeParams) => void; | ||
layoutResizeSeriesWidth | 表格序号行宽事件 | (params: ResizeParams) => void; | ||
layoutResizeRowWidth | 行头单元格宽度更改事件 | (params: ResizeParams) => void; | ||
layoutResizeRowHeight | 行头单元格高度更改事件 | (params: ResizeParams) => void; | ||
layoutResizeColWidth | 列头单元格宽度更改事件 | (params: ResizeParams) => void; | ||
layoutResizeColHeight | 列头单元格高度更改事件 | (params: ResizeParams) => void; | ||
layoutResizeTreeWidth | 树状行头整体宽度更改事件 | (params: ResizeParams) => void; | ||
layoutResizeMouseDown | resize 热区鼠标按下事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
layoutResizeMouseUp | resize 热区鼠标松开事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
layoutResizeMouseMove | resize 热区鼠标移动事件 | ( event: MouseEvent , resizeInfo?: ResizeInfo) => void; | ||
keyBoardDown | 键盘按下事件 | (event: KeyboardEvent) => void | ||
keyBoardUp | 键盘松开事件 | (event: KeyboardEvent) => void | ||
copied | 复制事件 | (data: CopyableList) => void | ||
actionIconHover | 行头操作 icon 悬停事件 | (event: FederatedPointerEvent) => void | ||
actionIconClick | 行头操作 icon 点击事件 | (event: FederatedPointerEvent) => void | ||
contextMenu | 右键单元格单击事件 (禁用右键菜单不生效?) | (event: FederatedPointerEvent) => void | ||
mouseHover | 表格鼠标悬停事件 | (event: FederatedPointerEvent) => void | ||
mouseUp | 表格鼠标松开事件 | (event: FederatedPointerEvent) => void | ||
selected | 单元格选中事件 | (cells: Cell[], detail: CellSelectedDetail ) => void | ||
reset | 交互状态重置事件 | (event: KeyboardEvent) => void | ||
linkFieldJump | 链接字段跳转事件 | (data: { field: string; meta: Node | ViewMeta; record: Data }) => void | ||
scroll | 单元格滚动事件 (含行头和数值单元格) | ({position: CellScrollPosition} ) => void; | ||
colCellBrushSelection | 批量选中刷选范围内的列头单元格,刷选过程中,显示刷选范围提示蒙层,刷选完成后,弹出 tooltip, 展示被刷选单元格信息 | (cells: ColCell[]) => void; | ||
rowCellBrushSelection | 批量选中刷选范围内的行头单元格,刷选过程中,显示刷选范围提示蒙层,刷选完成后,弹出 tooltip, 展示被刷选单元格信息(仅支持透视表) | (cells: RowCell[]) => void; |
@antv/s2-vue
组件 的 options
继承于 S2Options , 有两点不同:
S2Options
变更为 SheetComponentOptions
.antd-design-vue
的分页配置,即支持对 antd-vue
分页组件 的 api 透传。import type { Pagination, S2Options } from '@antv/s2';import type { PaginationProps } from 'ant-design-vue';type SheetComponentOptions = S2Options<Element | string,Pagination & PaginationProps>;
别名:GEvent
功能描述:交互回调函数的返回信息。
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
target | 交互作用对象 | S2CellType | ||
event | AntV/G Event 事件 | FederatedPointerEvent | ||
viewMeta | 当前节点信息 | Node |
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
sortFieldId | 度量 Id,即要被排序的 Id | string | - | ✓ |
sortMethod | 排序方式 | ASC | DESC | asc | desc | - | |
sortBy | 自定义排序列表 | string[] | - | |
sortByMeasure | 按照度量值(数值)排序(透视表适用) | string | - | |
query | 筛选条件,缩小排序范围 如 :{city:'白山'} | Record<string, string> | - | |
type | 组内排序用来显示 icon (透视表适用) | string | - | |
sortFunc | 自定义排序的 function | (params: SortFuncParam) => string[] | - |
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
sortFieldId | 度量 Id,即要被排序的 Id | string | - | ✓ |
sortMethod | 排序方式 | ASC | DESC | asc | desc | - | |
sortBy | 自定义排序列表 | string[] | - | |
sortByMeasure | 按照度量值(数值)排序(透视表适用) | string | - | |
query | 筛选条件,缩小排序范围 如 :{city:'白山'} | Record<string, string> | - | |
type | 组内排序用来显示 icon(透视表适用) | string | - | |
data | 当前排序数据列表 | Array<string | Record<string, any>> | - |
功能描述:单元格滚动的位置信息。
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
scrollX | 水平方向滚动偏移量(相对滚动条轨道长度) | number | ||
scrollY | 垂直方向滚动偏移量(相对滚动条轨道长度) | number |
功能描述:开启 隐藏列头 后,隐藏列头的节点信息
功能描述:表格 resize(单元格行高列宽拖动变化)和单元格样式信息
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
info | resize 配置信息 | ResizeInfo | ||
style | options 中样式相关配置 | style |
功能描述:表格 resize( 单元格行高列宽拖动变化)配置信息
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
theme | resize 热区配置 | ResizeArea | ||
type | resize 方向 | Horizontal | Vertical | ||
offsetX | 横向偏移量 | number | ||
offsetY | 纵向偏移量 | number | ||
width | 拖拽的宽度 | number | ||
height | 拖拽 | number | ||
size | 热区尺寸 | number | ||
effect | 拖拽更改影响的区域 | Field | Cell | Tree | Series | ||
isResizeArea | 是否属于 resize 热区 | boolean | ||
id | 字段 id | string | ||
cell | resize 热区对应单元格信息 | Node | ||
meta | resize 热区对应单元格元数据 | Node | ||
resizedWidth | 拖拽后的宽度 | number | ||
resizedHeight | 拖拽后的高度 | number |
功能描述:自定义渲染模式
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
reloadData | 是否重新加载数据 | boolean | ||
rebuildDataSet | 是否重新生成数据集 | boolean | ||
rebuildHiddenColumnsDetail | 是否重新生成列头隐藏信息 | boolean |
功能描述:数值单元格数据和位置等信息
参数 | 类型 | 必选 | 默认值 | 功能描述 |
---|---|---|---|---|
spreadsheet | SpreadSheet | 表格实例 | ||
id | string | 单元格唯一标识 | ||
x | number | 单元格 x 坐标 | ||
y | number | 单元格 y 坐标 | ||
width | number | 单元格宽度 | ||
height | number | 单元格高度 | ||
data | ViewMetaData | 单元格数据 | ||
rowIndex | number | 单元格在行叶子节点中的索引 | ||
colIndex | number | 单元格在列叶子节点中的索引 | ||
valueField | string | 度量 id | ||
fieldValue | DataItem | 度量展示的真实值 | ||
isTotals | boolean | 是否为总计:true 为总计 false 为小计 | ||
query | Record<string, any> | 行列查询条件 | ||
rowQuery | Record<string, any> | 行查询条件 | ||
colQuery | Record<string, any> | 列查询条件 | ||
rowId | string | 单元格的行 id | ||
colId | string | 单元格的列 id |
type RawData = Record<string, DataItem>;
type SimpleData = string | number | null | undefined;
功能描述:用于支持多指标类型的自定义数据单元格渲染。例如:趋势分析表
配置项名称 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
values | 格式化后的数据,直接展示在 dataCfg 中 | SimpleData[][] | ✓ | |
originalValues | 原始数据,用于原始数据导出 | SimpleData[][] | ||
label | 用作单元格小标题,单独占一行展示 | string | ||
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown | `` |
{"number": {"originalValues": [1, 2, 3],"values": ["1", "2", "3"]}}
SimpleData | MultiData | MiniChartData
type DataItem = SimpleData | MultiData | MiniChartData | Record<string, unknown>;
{"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"}
import type { EXTRA_FIELD, VALUE_FIELD } from '@antv/s2';type ExtraData = {[EXTRA_FIELD]: string;[VALUE_FIELD]: string | DataItem;};
{"$$extra$$": "number","$$value$$": 7789,}
type Data = RawData & ExtraData;
CellData
定义type ViewMetaData = Data | CellData;
{"city": "杭州市"}
{"extraField": "number","raw": {"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"},"$$extra$$": "number","$$value$$": 7789,"$$origin$$": {"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"}}
功能描述:在单元格内绘制 mini
图(支持 折线图、子弹图、柱状图). 查看 文档 和 示例
功能描述:内置折线图、柱状图数据配置项,数据格式参考 G2
参数 | 说明 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
type | mini 图类型 | line | bar | ✓ | |
encode | 编码方式,声明 x 位置通道或 y 位置通道绑定的对应的列数据 | {x: string; y: string} | ✓ | |
data | 原始数据 | Data[] | ✓ | |
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown |
功能描述:内置子弹图数据配置项
参数 | 说明 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
type | mini 图类型 | bullet | ✓ | bullet |
measure | 当前指标 | number | string | ✓ | |
target | 目标值 | number | string | ✓ | |
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown |
功能描述:数值单元格数据和位置等信息
参数 | 类型 | 必选 | 默认值 | 功能描述 |
---|---|---|---|---|
spreadsheet | SpreadSheet | 表格实例 | ||
id | string | 单元格唯一标识 | ||
x | number | 单元格 x 坐标 | ||
y | number | 单元格 y 坐标 | ||
width | number | 单元格宽度 | ||
height | number | 单元格高度 | ||
data | ViewMetaData | 单元格数据 | ||
rowIndex | number | 单元格在行叶子节点中的索引 | ||
colIndex | number | 单元格在列叶子节点中的索引 | ||
valueField | string | 度量 id | ||
fieldValue | DataItem | 度量展示的真实值 | ||
isTotals | boolean | 是否为总计:true 为总计 false 为小计 | ||
query | Record<string, any> | 行列查询条件 | ||
rowQuery | Record<string, any> | 行查询条件 | ||
colQuery | Record<string, any> | 列查询条件 | ||
rowId | string | 单元格的行 id | ||
colId | string | 单元格的列 id |
type RawData = Record<string, DataItem>;
type SimpleData = string | number | null | undefined;
功能描述:用于支持多指标类型的自定义数据单元格渲染。例如:趋势分析表
配置项名称 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
values | 格式化后的数据,直接展示在 dataCfg 中 | SimpleData[][] | ✓ | |
originalValues | 原始数据,用于原始数据导出 | SimpleData[][] | ||
label | 用作单元格小标题,单独占一行展示 | string | ||
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown | `` |
{"number": {"originalValues": [1, 2, 3],"values": ["1", "2", "3"]}}
SimpleData | MultiData | MiniChartData
type DataItem = SimpleData | MultiData | MiniChartData | Record<string, unknown>;
{"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"}
import type { EXTRA_FIELD, VALUE_FIELD } from '@antv/s2';type ExtraData = {[EXTRA_FIELD]: string;[VALUE_FIELD]: string | DataItem;};
{"$$extra$$": "number","$$value$$": 7789,}
type Data = RawData & ExtraData;
CellData
定义type ViewMetaData = Data | CellData;
{"city": "杭州市"}
{"extraField": "number","raw": {"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"},"$$extra$$": "number","$$value$$": 7789,"$$origin$$": {"number": 7789,"province": "浙江省","city": "杭州市","type": "家具","sub_type": "桌子"}}
功能描述:在单元格内绘制 mini
图(支持 折线图、子弹图、柱状图). 查看 文档 和 示例
功能描述:内置折线图、柱状图数据配置项,数据格式参考 G2
参数 | 说明 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
type | mini 图类型 | line | bar | ✓ | |
encode | 编码方式,声明 x 位置通道或 y 位置通道绑定的对应的列数据 | {x: string; y: string} | ✓ | |
data | 原始数据 | Data[] | ✓ | |
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown |
功能描述:内置子弹图数据配置项
参数 | 说明 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
type | mini 图类型 | bullet | ✓ | bullet |
measure | 当前指标 | number | string | ✓ | |
target | 目标值 | number | string | ✓ | |
[key: string] | 其他透传字段,用于自定义单元格的定制化展示 | unknown |
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
linkFields | 标记字段为链接样式,用于外链跳转 | string[] | (meta: Node | ViewMeta) => boolean | ||
selectedCellsSpotlight | 是否开启选中高亮聚光灯效果 | boolean | false | |
hoverHighlight | 鼠标悬停时高亮当前单元格,以及所对应的行头,列头 | boolean | true | |
hoverFocus | 鼠标悬停在当前单元格超过默认 800ms 后,保持当前高亮,显示 tooltip,悬停时间通过设置 duration 来控制 | boolean | {duration: number} | true | |
hiddenColumnFields | 用于配置默认隐藏的列,透视表 和多列头明细表 需要配置列头唯一 id, 单列头明细表 配置列头 field 字段即可 (即:s2DataConfig.fields.columns ). 了解更多 | string[] | ||
copy | 单元格复制配置 | Copy | ||
customInteractions | 自定义交互 详情 | CustomInteraction[] | ||
scrollSpeedRatio | 用于控制滚动速率,分水平和垂直两个方向,默认为 1 | ScrollSpeedRatio | ||
autoResetSheetStyle | 用于控制点击表格外区域和按下 ESC 键时是否重置交互状态和关闭 Tooltip, 支持根据 event 动态判断 | boolean | (event: Event | FederatedPointerEvent, spreadsheet: SpreadSheet) => boolean | true | |
resize | 用于控制 resize 热区是否显示 | boolean | ResizeInteractionOptions | true | |
brushSelection | 是否允许单元格(包含行头,列头,数值单元格)刷选。行头,列头刷选只支持透视表 | boolean | BrushSelection | true | |
multiSelection | 是否允许多选 (包含行头,列头,数值单元格) | boolean | true | |
rangeSelection | 是否允许区间快捷多选 | boolean | true | |
scrollbarPosition | 用于控制滚动条展示在内容区边缘还是画布边缘 | content | canvas | content | |
eventListenerOptions | 事件监听函数 addEventListener 的 可选项配置, 可控制事件从冒泡阶段还是捕获阶段触发 | false | ||
selectedCellHighlight | 选中数值单元格后的行列高亮联动 rowHeader:选中数值单元格后高亮对应行头 colHeader:选中数值单元格后高亮对应列头 currentRow:选中数值单元格后高亮整行 currentCol:选中数值单元格后高亮整列 true:同 { rowHeader: true, colHeader: true, currentRow: true, currentCol: true } | boolean | { rowHeader?: boolean, colHeader?: boolean, currentRow?: boolean, currentCol?: boolean } | false | |
overscrollBehavior | 控制滚动至边界的行为,可禁用浏览器的默认滚动行为。详情 | auto | contain | none | null | auto |
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
enable | 是否允许复制 | boolean | true | |
withFormat | 是否使用 s2DataConfig 的 formatter 格式复制数据 | boolean | true | |
withHeader | 复制数据是否带表头信息 | boolean | false | |
customTransformer | 复制时支持自定义 (transformer) 数据格式化方法 | (transformer: Transformer) => Partial<Transformer> | transformer |
功能描述:自定义交互,继承 BaseEvent: 查看示例
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
key | 交互的唯一标识 | string | ✓ | |
interaction | 交互实例 | InteractionConstructor | ✓ |
功能描述:滚动速率配置。查看示例
interface ScrollSpeedRatio {horizontal?: number; // 水平滚动速率,默认为 1vertical?: number; // 垂直滚动速率,默认为 1}
功能描述:宽高调整配置。查看示例
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
rowCellVertical | 是否开启行头垂直方向 resize 热区 | boolean | true | |
cornerCellHorizontal | 是否开启角头水平方向 resize 热区 | boolean | true | |
colCellHorizontal | 是否开启列头水平方向 resize 热区 | boolean | true | |
colCellVertical | 是否开启列头垂直方向 resize 热区 (列头隐藏时该配置无效) | boolean | true | |
rowResizeType | 用于控制行高 resize 时的生效范围 1. all : 对所有单元格生效(会覆盖默认的行高配置),2. current : 对当前单元格生效,3. selected : 对当前单元格生效,如果单元格是多选状态,调整任意选中单元格,对所有选中的生效。 | all | current | selected | current | |
colResizeType | 用于控制列宽 resize 时的生效范围 1. all : 对所有单元格生效(会覆盖默认的列宽配置),2. current : 对当前单元格生效,3. selected : 对当前单元格生效,如果单元格是多选状态,调整任意选中单元格,对所有选中的生效。 | all | current | selected | current | |
disable | 用于控制行高 resize 是否生效。查看示例 | (resizeInfo: S2CellType) => boolean | ||
visible | 自定义当前单元格是否显示 resize 热区 | (cell: S2CellType) => boolean | ||
minCellWidth | 单元格可拖拽最小宽度 | number | 40 | |
minCellHeight | 单元格可拖拽最小高度 | number | 20 |
功能描述:单元格刷选配置。查看示例
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
dataCell | 是否允许数值单元格刷选 | boolean | true | |
rowCell | 是否允许行头单元格刷选(仅支持透视表) | boolean | false | |
colCell | 是否允许列头单元格刷选 | boolean | false |
功能描述:单元格选中信息明细。
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
interactionName | 触发选中的交互名 | InteractionName | ||
targetCell | 触发选中的单元格 | S2CellType | ||
event | 触发选中的事件对象 | FederatedPointerEvent | Event | KeyboardEvent |
功能描述:交互拦截类型。
enum InterceptType {HOVER = 'hover',CLICK = 'click',DATA_CELL_BRUSH_SELECTION = 'dataCellBrushSelection',ROW_CELL_BRUSH_SELECTION = 'rowCellBrushSelection',COL_CELL_BRUSH_SELECTION = 'colCellBrushSelection',MULTI_SELECTION = 'multiSelection',RESIZE = 'resize',}
功能描述:交互名称。
enum InteractionName {CORNER_CELL_CLICK = 'cornerCellClick',DATA_CELL_CLICK = 'dataCellClick',ROW_CELL_CLICK = 'rowCellClick',COL_CELL_CLICK = 'colCellClick',MERGED_CELLS_CLICK = 'mergedCellsClick',ROW_COLUMN_CLICK = 'rowColumnClick',HEADER_CELL_LINK_CLICK = 'headerCellLinkClick',HOVER = 'hover',DATA_CELL_BRUSH_SELECTION = 'dataCellBrushSelection',ROW_CELL_BRUSH_SELECTION = 'rowCellBrushSelection',COL_CELL_BRUSH_SELECTION = 'colCellBrushSelection',COL_ROW_RESIZE = 'rowColResize',DATA_CELL_MULTI_SELECTION = 'dataCellMultiSelection',ROW_CELL_MULTI_SELECTION = 'rowCellMultiSelection',COL_CELL_MULTI_SELECTION = 'colCellMultiSelection',RANGE_SELECTION = 'rangeSelection',SELECTED_CELL_MOVE = 'selectedCellMove',GLOBAL_RESET = 'globalReset',}
功能描述:交互状态名称。
enum InteractionStateName {ALL_SELECTED = 'allSelected',SELECTED = 'selected',ROW_CELL_BRUSH_SELECTED = 'rowCellBrushSelected',COL_CELL_BRUSH_SELECTED = 'colCellBrushSelected',DATA_CELL_BRUSH_SELECTED = 'dataCellBrushSelected',UNSELECTED = 'unselected',HOVER = 'hover',HOVER_FOCUS = 'hoverFocus',HIGHLIGHT = 'highlight',SEARCH_RESULT = 'searchResult',PREPARE_SELECT = 'prepareSelect',}
功能描述:单元格类型。
enum CellType {DATA_CELL = 'dataCell',ROW_CELL = 'rowCell',COL_CELL = 'colCell',SERIES_NUMBER_CELL = 'seriesNumberCell',CORNER_CELL = 'cornerCell',MERGED_CELL = 'mergedCell',}