类 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 + Y、Ctrl + Shift + Z | 重做 | 重做上一步撤销的操作 |
# 复制粘贴操作
支持单元格数据的复制粘贴,包括表格内部和外部应用程序(如Excel)之间的数据交换。 黏贴时,支持智能填充和循环填充。
# 粘贴模式
- 智能粘贴:根据目标单元格的组件类型自动格式化数据
- 循环填充:当选中区域数倍于复制区域时,自动循环填充
# 智能填充
智能填充功能可以自动识别数据模式并生成序列数据。
# 操作说明
- 选择包含模式数据的单元格(至少2个)
- 拖拽选择区域右下角的填充手柄
- 系统会自动识别数据模式并填充
# 支持的填充模式
- 数值序列:如 1, 2, 3... 或 10, 20, 30...
- 日期序列:如 2024-01-01, 2024-01-02...
- 文本+数字序列:如 项目1, 项目2, 项目3...
- 自定义列表:如星期一, 星期二... 或一月, 二月...
- 复制模式:当无法识别模式时,重复复制源数据。
按住 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文本黏贴时映射到表格的值) |