!!!###!!!title=表格专用序号插件——VisActor/VTable 教程文档!!!###!!!!!!###!!!description=表格序号插件是 VTable 提供的一个强大功能,用于为表格添加行序号和列序号,使表格数据更易于阅读和定位。本文将详细介绍表格序号插件的功能、配置选项以及使用方法。!!!###!!!

表格序号插件 (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);

配置选项

表格序号插件支持以下配置选项:

选项名类型默认值描述
rowCountnumber-表格行数,必填
colCountnumber-表格列数,必填
colSeriesNumberHeightnumber30列序号区域的高度
rowSeriesNumberWidthnumber30行序号区域的宽度
rowSeriesNumberGenerate(rowIndex: number) => string | number数字递增自定义行序号生成函数
colSeriesNumberGenerate(colIndex: number) => string | number字母递增自定义列序号生成函数
rowSeriesNumberCellStyleobject-行序号单元格样式
colSeriesNumberCellStyleobject-列序号单元格样式
cornerCellStyleobject-左上角单元格样式

高级功能

自定义序号生成

你可以自定义行列序号的生成规则,例如使用字母作为列序号:

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 键点击:范围选择

调整大小

  • 在行序号边缘拖动:调整行高
  • 在列序号边缘拖动:调整列宽

完整示例

下面是一个完整的示例,展示了如何使用表格序号插件: