类 Excel 区域选择

# 类 Excel 区域选择

# 概述

区域选择功能为表格提供了类似 Excel 的操作体验,支持单元格区域选择、复制粘贴、智能填充、撤销重做等功能。该功能特别适用于需要批量编辑数据的场景。

# 功能特性

  • 区域选择:支持鼠标拖拽选择单元格区域
  • 整列选择:点击、拖拽表头可选择整列数据
  • 整行选择:序号列支持点击、拖拽选择整行
  • 键盘操作:支持 Ctrl+A 全选、Ctrl+C 复制、Ctrl+V 粘贴、Ctrl+X 剪切等快捷键
  • 智能填充:支持数值序列、日期序列、文本序列的智能识别和填充
  • 撤销重做:支持 Ctrl+Z 撤销和 Ctrl+Y 重做操作
  • 复制粘贴:支持单元格数据的复制粘贴,包括跨表格操作
  • 自定义填充:支持自定义填充列表,如星期、月份等
  • 复杂表格兼容:兼容固定列、合并单元格、树级折叠等复杂表格结构

# 快捷键操作

区域选择功能支持以下快捷键操作:

快捷键 功能 说明
Ctrl + A 全选 选择表格中所有可编辑的单元格
Ctrl + C 复制 复制选中区域的数据
Ctrl + Shift + C 复制带表头 复制选中区域的数据并携带表头
Ctrl + V 粘贴 粘贴剪贴板数据到选中区域
Delete 清空 清空选中单元格内容
Ctrl + X 剪切 剪切选中区域的数据
Ctrl + Z 撤销 撤销上一步操作
Ctrl + YCtrl + Shift + Z 重做 重做上一步撤销的操作

# 复制粘贴操作

支持单元格数据的复制粘贴,包括表格内部和外部应用程序(如Excel)之间的数据交换。 黏贴时,支持智能填充和循环填充。

# 粘贴模式

  • 智能粘贴:根据目标单元格的组件类型自动格式化数据
  • 循环填充:当选中区域数倍于复制区域时,自动循环填充

# 智能填充

智能填充功能可以自动识别数据模式并生成序列数据。

# 操作说明

  1. 选择包含模式数据的单元格(至少2个)
  2. 拖拽选择区域右下角的填充手柄
  3. 系统会自动识别数据模式并填充

# 支持的填充模式

  1. 数值序列:如 1, 2, 3... 或 10, 20, 30...
  2. 日期序列:如 2024-01-01, 2024-01-02...
  3. 文本+数字序列:如 项目1, 项目2, 项目3...
  4. 自定义列表:如星期一, 星期二... 或一月, 二月...
  5. 复制模式:当无法识别模式时,重复复制源数据。

按住 Ctrl 键时,强制使用复制模式。

# 自定义填充列表

可以通过 fillCustomLists 配置自定义的填充序列:

// 配置自定义填充列表
areaSelection: {
  fillCustomLists: [
    ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
    ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
    ['第一季度', '第二季度', '第三季度', '第四季度']
  ]
}

# 撤销重做

支持操作历史的撤销和重做功能:

撤销:按 Ctrl+Z 回退上一步操作
重做:按 Ctrl+Y 或 Ctrl+Shift+Z 重新执行上一步撤销的操作

# 复杂表格支持

# API

# areaSelection 配置项

参数 类型 默认值 说明
operationType String 'edit' 'all':对所有数据进行操作,包括只读单元格,'edit': 仅对可编辑的单元格进行操作(默认)
copy Boolean true 是否启用复制功能
paste Boolean true 是否启用粘贴功能
cut Boolean true 是否启用剪切功能
fill Boolean true 是否启用智能填充功能
fillCustomLists Array [] 自定义填充列表,用于智能填充的自定义序列
undo Boolean true 是否启用撤销功能
redo Boolean true 是否启用重做功能
selection Boolean true 是否启用区域选择功能
allSelection Boolean true 是否启用全选功能(Ctrl+A)
rowSelection Boolean true 是否启用行选择(点击序号列)
columnSelection Boolean true 是否启用列选择(点击表头)
autoScroll Boolean true 是否启用自动滚动
scrollSpeed Number 10 自动滚动速度(像素/帧)
maxUndoSteps Number 50 最大撤销步数
getCellTextMethod Function - 自定义获取单元格文本的方法(复制文本)
getCellValueMethod Function - 自定义获取单元格值的方法(表格间值复制、获取值)
getClearValueMethod Function - 自定义返回清空值的方法
setCellValueMethod Function - 自定义设置单元格值的方法,可通过type参数判断操作类型
textMappingConfig Object - 文本映射配置对象(外部Excel文本黏贴时映射到表格的值)
customMapping Function - 自定义文本映射函数 (外部Excel文本黏贴时映射到表格的值)