!!!###!!!title=6.1 ListTable 概念和能力定义——VisActor/VTable 社区贡献者文档!!!###!!!!!!###!!!description=---title: 6.1 ListTable 概念和能力定义 key words: VisActor,VChart,VTable,VStrory,VMind,VGrammar,VRender,Visualization,Chart,Data,Table,Graph,Gis,LLM--- !!!###!!!

6.1.1

什么是 ListTable?

ListTable 是 `@visactor/vtable` 中的基础表格类型,用于以行列形式展示结构化数据。由行和列组成、以清晰的结构呈现大量数据。通过一些基本的配置,能够快速的实现不同的功能。
* 设计目标:专注于高性能渲染、灵活配置和交互扩展。
  • PivotTable(透视表)的对比

核心特点

  • 强大的数据处理能力

提供了对多种数据聚合操作、包括排序、合计、最大值和最小值以及自定义聚合函数,能够帮助用户快速进行聚合操作。

  • 丰富的可扩展性

支持自定义单元格,自定义布局,自定义主题、同时支持 React 和 Vue 以组件的形式引用。

  • 可视化增强

ListTable 支持迷你图、数据条、图标 、自定义单元格样式等功能。同时也支持在单元格内部插入图表,形成组合图表。

  • 高性能的交互和操作

ListTable 支持自定义排序、单元格 hover 和 select 样式自定义、自定义下拉菜单、单元格编辑能力。通过canvas实现了类DOM的操作,性能更优秀。

6.1.2

  • 典型用例

  • 数据库查询结果实时展示(支持字段动态显示)

  • 需要动态增删改查的表格(如管理后台)。

  • 结合交互操作的数据分析界面(如框选、排序、过滤)。

  • 不适合的场景

  • 需要复杂行列层级嵌套(优先考虑 PivotTable)。

6.1.3

以下是ListTable核心概念及其说明:

  • Records: ListTable 数据源,以数组形式表示,ListTable 同时还支持通过 dataSource 的形式进行异步渲染数据;

  • Columns:列定义,包括了列表头的定义和单元格格式化的定义。columns 支持树的形式定义多级表头和表头合并;

  • Pagination:分页配置,包括当前页数、总条数等;

  • Scenegraph:ListTable内部渲染的场景树,用于表格的渐进式渲染;

  • Theme: 主题定义,ListTable 支持自定义主题,包括表格边框、单元格背景颜色等

  • SortState:自定义排序逻辑;

  • Transpose:行列转置,将行和列进行置换,ListTable相对于PivotTable 特有的能力;

  • CustomMergeCell:自定义合并单元格,支持配置单元格合并逻辑。

6.1.4

下面介绍关于ListTable的能力定义,详情参考该文章https://visactor.com/vtable/guide/introduction

数据处理能力

  • 数据规模:支持百万级数据渲染,能够进行流畅滚动;

  • 数据源:ListTable 同时支持传入数据和异步传入数据;

  • 数据结构:支持二维对象、二维数组以及对象结构,对象结构主要用于异步加载数据源;

  • 数据格式化:ListTable 支持自定义数据格式化,同时支持排序,过滤,数据聚合计算。参考文档https://visactor.com/vtable/guide/data_analysis/list_table_dataAnalysis

  • 动态更新:可以通过 updateOption、updateRecords 等 api 更新数据;

渲染能力

  • 渲染模式:混合渲染(Canvas主体 + DOM叠加层);

  • 单元格渲染:借助VRender完成表格组件的渲染,支持通过 style 函数配置去方便的自定义单元格样式;

  • 跨端适配:ListTable 同时支持Node端、Browser端;

交互能力

  • 表格交互

  • ListTable 允许自定义hover和select 时的高亮配置,包括高亮整行或是高亮整列;

  • 拖拽:ListTable 支持拖拽表头调整位置、禁止某列换位、拖拽调整列宽、换位标记线样式自定义等操作;

  • 冻结:行列冻结仅支持 ListTable 使用,能够配置左侧、右侧列冻结,顶部、底部冻结行。

配置文档参考:https://visactor.com/vtable/guide/basic_function/frozen_column_row

  • 排序:支持点击排序图表,自定义内部排序规则。

  • 组件级交互

组件级交互包括滚动条交互、下拉菜单、tooltip 定义等。

  • 自定义事件

ListTable 提供了监听内部自定义事件的功能,允许搭配自定义回调完成交互。

可视化增强

  • 条件格式

用户可以通过 style 配置单元格样式,style 中所有样式,包括边框、背景颜色、文本粗细等都支持函数的形式,用户可以通过 style 来达到单元格粒度的样式定义。

详细参考文档:https://visactor.com/vtable/guide/theme_and_style/style

  • 多样的单元格类型:

ListTable 中的单元格不仅支持文本,还能支持 link,image,最重要的是支持迷你图,关于迷你图的介绍可以参考该篇文章 https://visactor.com/vtable/guide/cell_type/sparkline

表格转置

独属于ListTable 的能力,能够将表格的行列进行调换,适用于有特殊需求的场景,通过transpose开启。

树形结构

在某些场景下,需要支持表格树形展示,包括项目管理,部门人员管理,ListTable支持基本树形结构展示,通过在records中定义 group 和 children 来使用。

详细参考文档:https://visactor.com/vtable/guide/table_type/List_table/tree_list

分组展示

ListTable 支持对基本表格各行进行分组,通过配置 groupBy 字段,来配置使用哪个字段来进行 group 操作。

详细参考文档:https://visactor.com/vtable/guide/table_type/List_table/group_list

主题

内置多样主题:包括 ARCO Theme、LIGHT Theme,帮助用户快速定义心仪的样式。

详细参考文档: https://visactor.com/vtable/guide/theme_and_style/theme

表格导出

ListTable 能够支持自定义导出成csv和excel格式,且能支持按照options导出,除开基本单元格,其余包括数据条都是导出成图片,目前暂不支持导出迷你图。关于导出的介绍:https://visactor.com/vtable/guide/export/excel

本文档由以下人员提供

taiiiyang(https://github.com/taiiiyang)

本文档由以下人员修正整理

玄魂