SuperAPI AI 工具集

tanstack-table-core-cell-spanning

通用与其它

查看项目

更新于 10-16 00:02

技能介绍

用途:为 TanStack Table Core 增加单元格合并能力,基于 cellSpanningFeature 按值合并相邻正文单元格。合并是无状态、完全派生的:表级 span 索引根据实际渲染的行重建,单元格读取为 O(1) 查找;排序、过滤、分页、行固定只改变相邻关系,合并自动跟随且不持久化。

主要能力:spanRows: true 按 Object.is 合并相邻渲染行中值相同的单元格,空值默认不合并,可用谓词自定义;谓词以 run 的首行为锚点,保证传递性。spanColumns 按渲染顺序统计可见列,并夹紧到单元格所在固定区域末尾,Infinity 表示“本区域剩余列”,且不跨越 start/center/end 固定边界。列跨度不同的单元格不会加入同一纵向 run。

使用方式:注册 features = tableFeatures({ cellSpanningFeature });列定义中设置 spanRows 或 spanColumns;渲染时遍历 row.getVisibleCells(),读取 cell.getRowSpan() 与 cell.getColSpan(),跨度为 0 表示被覆盖,应跳过该单元格而非渲染 rowSpan={0}。可用 enableCellSpanning: false 在表级禁用,列级同名标志可单独退出且优先于表级。

适用场景:需要按值合并相邻行或整行汇总行的表格。限制与注意:合并不会排序或分组,需自行排序或让相同值相邻;不要从源数据预计算跨度,否则排序、过滤、分页后会错乱;run 会被分页边界截断;分组列上的 spanRows 被忽略,分组行不参与 run;与 cellSelectionFeature 同时注册时选择已合并感知,不要自行预扩展选择角点。完整 API 可查看 node_modules/@tanstack/table-core/dist/features/cell-spanning/。