表格序号插件 (TableSeriesNumber)
表格序号插件是 VTable 提供的一个强大功能,用于为表格添加行序号和列序号,使表格数据更易于阅读和定位。本文将详细介绍表格序号插件的功能、配置选项以及使用方法。
功能特点
- 行列序号显示:在表格左侧和顶部分别显示行序号和列序号
- 自动同步表格尺寸:序号区域会自动同步表格的行高和列宽
- 支持冻结行列:与表格的冻结行列功能完美配合
- 支持选择交互:点击序号可以选择整行或整列
- 支持拖拽调整大小:可以通过拖拽调整行高和列宽
安装
# 使用 npm npm install @visactor/vtable-plugins # 使用 yarn yarn add @visactor/vtable-plugins # 使用 pnpm pnpm add @visactor/vtable-plugins
基本使用
引入插件
import * as VTable from '@visactor/vtable'; import { TableSeriesNumber } from '@visactor/vtable-plugins';
创建插件实例
const tableSeriesNumberPlugin = new TableSeriesNumber({ rowCount: 1000, // 行数 colCount: 100, // 列数 colSeriesNumberHeight: 30, // 列序号高度 rowSeriesNumberWidth: 40 // 行序号宽度 });
在表格选项中使用插件
const option: VTable.ListTableConstructorOptions = { // 其他表格配置... plugins: [tableSeriesNumberPlugin] }; const tableInstance = new VTable.ListTable(document.getElementById('container'), option);
配置选项
表格序号插件支持以下配置选项:
| 选项名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| rowCount | number | - | 表格行数,必填 |
| colCount | number | - | 表格列数,必填 |
| colSeriesNumberHeight | number | 30 | 列序号区域的高度 |
| rowSeriesNumberWidth | number | 30 | 行序号区域的宽度 |
| rowSeriesNumberGenerate | (rowIndex: number) => string | number | 数字递增 | 自定义行序号生成函数 |
| colSeriesNumberGenerate | (colIndex: number) => string | number | 字母递增 | 自定义列序号生成函数 |
| rowSeriesNumberCellStyle | object | - | 行序号单元格样式 |
| colSeriesNumberCellStyle | object | - | 列序号单元格样式 |
| cornerCellStyle | object | - | 左上角单元格样式 |
高级功能
自定义序号生成
你可以自定义行列序号的生成规则,例如使用字母作为列序号:
const tableSeriesNumberPlugin = new TableSeriesNumber({ rowCount: 100, colCount: 26, colSeriesNumberGenerate: (colIndex) => { // 将列索引转换为字母 (A, B, C, ...) return String.fromCharCode(65 + colIndex); } });
自定义样式
可以自定义序号单元格的样式:
const tableSeriesNumberPlugin = new TableSeriesNumber({ rowCount: 100, colCount: 26, rowSeriesNumberCellStyle: { text: { fontSize: 14, fill: '#7A7A7A', pickable: false, textAlign: 'left', textBaseline: 'middle', padding: [2, 4, 2, 4] }, borderLine: { stroke: '#D9D9D9', lineWidth: 1, pickable: false }, bgColor: '#F9F9F9', states: { hover: { fill: '#98C8A5', opacity: 1 }, select: { fill: 'yellow', opacity: 1 } } }, colSeriesNumberCellStyle: { text: { fontSize: 14, fill: '#7A7A7A', pickable: false, textAlign: 'left', textBaseline: 'middle', padding: [2, 4, 2, 4] }, borderLine: { stroke: '#D9D9D9', lineWidth: 1, pickable: false }, bgColor: '#F9F9F9', states: { hover: { fill: '#98C8A5', opacity: 1 }, select: { fill: 'orange', opacity: 1 } } }, cornerCellStyle: { borderLine: { stroke: '#D9D9D9', lineWidth: 1, pickable: false }, bgColor: '#F9F9F9', states: { hover: { fill: '#98C8A5', opacity: 0.7 }, select: { fill: '#98C8A5', opacity: 0.7 } } } });
交互功能
表格序号插件提供了丰富的交互功能:
行列选择
- 点击行序号:选择整行
- 点击列序号:选择整列
- 点击左上角:选择整个表格
- 按住 Ctrl/Command 键点击:多选行或列
- 按住 Shift 键点击:范围选择
调整大小
- 在行序号边缘拖动:调整行高
- 在列序号边缘拖动:调整列宽
完整示例
下面是一个完整的示例,展示了如何使用表格序号插件: