news 2026/2/10 11:19:43

vue 表格 vxe-table 手动操作单元格范围选择,手动选择 excel 指定区域的用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue 表格 vxe-table 手动操作单元格范围选择,手动选择 excel 指定区域的用法

vue 表格 vxe-table 手动操作单元格范围选择,手动选择 excel 指定区域的用法,当需要通用调用方法来手动选择知道区域时,可以通过调用 setCellAreas 方法将指定区域的单元格选中。

https://vxetable.cn

常用方法说明:
getCellAreas 用于获取当前已选的区域的单元格
setCellAreas 用于选中指定区域的单元格
clearCellAreas 用于清除当前选中的区域单元格

<template><div><vxe-gridref="gridRef"v-bind="gridOptions"><template#toolbarButtons><vxe-buttonstatus="primary"@click="selectCellAreas1()">选择区域1</vxe-button><vxe-buttonstatus="primary"@click="selectCellAreas2()">选择区域2</vxe-button><vxe-buttonstatus="primary"@click="selectCellAreas3()">选择区域斌指定活动单元格</vxe-button><vxe-buttonstatus="success"@click="saveCellAreas()">获取选取的区域</vxe-button><vxe-buttonstatus="success"@click="saveActiveArea()">获取活动单元格</vxe-button><vxe-button@click="clearCellAreas()">清除区域</vxe-button><vxe-buttonstatus="primary"@click="activeEditCell()">设置编辑</vxe-button><vxe-button@click="clearEditCell()">清除编辑</vxe-button></template></vxe-grid></div></template><scriptsetup>import{ref,reactive}from'vue'import{VxeUI}from'vxe-pc-ui'constgridRef=ref()constgridOptions=reactive({border:true,height:500,showOverflow:true,toolbarConfig:{slots:{buttons:'toolbarButtons'}},columnConfig:{resizable:true},mouseConfig:{area:true// 是否开启区域选取},areaConfig:{multiple:true// 是否启用多区域选取功能},editConfig:{mode:'cell',// 单元格编辑模式trigger:'dblclick'// 双击单元格激活编辑状态},keyboardConfig:{isArrow:true,// 是否开启方向键功能isShift:true,// 是否开启同时按住方向键以活动区域为起始,向指定方向扩展单元格区域isTab:true,// 是否开启 Tab 键功能isEnter:true,// 是否开启回车键功能isEdit:true,// 是否开启任意键进入编辑(功能键除外)isDel:true,// 是否开启删除键功能isEsc:true,// 是否开启Esc键关闭编辑功能isFNR:true,// 是否开启查找与替换isClip:true// 是否开启复制粘贴},columns:[{type:'seq',width:60},{field:'name',title:'name',editRender:{name:'VxeInput'}},{field:'role',title:'Role',editRender:{name:'VxeInput'}},{field:'sex',title:'sex',editRender:{name:'VxeInput'}},{field:'num',title:'Num',editRender:{name:'VxeInput'}},{field:'age',title:'age',editRender:{name:'VxeInput'}},{field:'address',title:'Address',width:300,editRender:{name:'VxeInput'}}],data:[{id:10001,name:'Test1',role:'Develop',sex:'Man',num:23,age:28,address:'Shengzhen'},{id:10002,name:'Test2',role:'Test',sex:'Women',num:23,age:22,address:'Guangzhou'},{id:10003,name:'Test3',role:'PM',sex:'Man',num:23,age:32,address:'Shanghai'},{id:10004,name:'Test4',role:'Designer',sex:'Women',num:456,age:24,address:'Shanghai'},{id:10005,name:'Test5',role:'Designer',sex:'Women',num:23,age:42,address:'Guangzhou'},{id:10006,name:'Test6',role:'Designer',sex:'Man',num:23,age:38,address:'Shengzhen'},{id:10007,name:'Test7',role:'Test',sex:'Women',num:100,age:24,address:'Shengzhen'},{id:10008,name:'Test8',role:'PM',sex:'Man',num:345,age:34,address:'Shanghai'},{id:10009,name:'Test9',role:'Designer',sex:'Man',num:67,age:52,address:'Shanghai'},{id:10010,name:'Test10',role:'Test',sex:'Women',num:23,age:44,address:'Guangzhou'},{id:10011,name:'Test11',role:'Designer',sex:'Man',num:56,age:52,address:'Shanghai'},{id:10012,name:'Test12',role:'Test',sex:'Women',num:23,age:16,address:'Guangzhou'}]})constselectCellAreas1=()=>{const$grid=gridRef.valueif($grid){const{visibleColumn}=$grid.getTableColumn()const{visibleData}=$grid.getTableData()$grid.setCellAreas([{startRow:visibleData[3],endRow:visibleData[3],startColumn:visibleColumn[1],endColumn:visibleColumn[1]}])}}constselectCellAreas2=()=>{const$grid=gridRef.valueif($grid){const{visibleColumn}=$grid.getTableColumn()const{visibleData}=$grid.getTableData()$grid.setCellAreas([{startRow:visibleData[2],endRow:visibleData[5],startColumn:visibleColumn[3],endColumn:visibleColumn[5]}])}}constselectCellAreas3=()=>{const$grid=gridRef.valueif($grid){const{visibleColumn}=$grid.getTableColumn()const{visibleData}=$grid.getTableData()$grid.setCellAreas([{startRow:visibleData[2],endRow:visibleData[5],startColumn:visibleColumn[3],endColumn:visibleColumn[5]}],{// 同时指定活动单元格,必须存在于当前区域中row:visibleData[3],column:visibleColumn[3]})}}constsaveCellAreas=()=>{const$grid=gridRef.valueif($grid){constcellAreas=$grid.getCellAreas()cellAreas.forEach((areas,i)=>{const{rows,cols}=areas console.log(`${i+1}区域:共${rows.length}${cols.length}`,rows,cols.map(column=>column.field))})VxeUI.modal.message({content:`${cellAreas.length}区域`})}}constsaveActiveArea=()=>{const$grid=gridRef.valueif($grid){constactiveCellArea=$grid.getActiveCellArea()if(activeCellArea){const{row,column}=activeCellArea VxeUI.modal.message({content:`行:${row.name}列:${column.field}`})}else{VxeUI.modal.message({content:'不存在活动单元格',status:'info'})}}}constclearCellAreas=()=>{const$grid=gridRef.valueif($grid){$grid.clearCellAreas()}}constactiveEditCell=()=>{const$grid=gridRef.valueif($grid){const{visibleData}=$grid.getTableData()$grid.setEditRow(visibleData[1])}}constclearEditCell=()=>{const$grid=gridRef.valueif($grid){$grid.clearEdit()}}</script>

https://gitee.com/x-extends/vxe-table

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 12:18:39

Dify插件开发没人告诉你的4个秘密技巧,第3个至关重要

第一章&#xff1a;Dify插件开发没人告诉你的4个秘密技巧&#xff0c;第3个至关重要在Dify插件开发中&#xff0c;掌握一些鲜为人知的技巧能显著提升开发效率和插件稳定性。以下四个关键点&#xff0c;尤其第三个&#xff0c;往往被官方文档忽略&#xff0c;却对实际开发影响深…

作者头像 李华
网站建设 2026/2/8 3:11:10

为什么你的Dify文档总保存失败?(工程师不会告诉你的5个真相)

第一章&#xff1a;为什么你的Dify文档总保存失败&#xff1f;在使用 Dify 构建 AI 应用时&#xff0c;文档保存失败是一个常见但令人困扰的问题。尽管界面提示“保存成功”&#xff0c;但刷新后内容却丢失&#xff0c;这通常源于配置或网络层面的隐性错误。检查存储权限与路径…

作者头像 李华
网站建设 2026/2/8 17:36:50

云服务器高可用运维的核心逻辑与实操

在数字化业务场景中&#xff0c;云服务器的可用性直接决定企业营收与用户体验 —— 某电商平台曾因服务器故障 1 小时损失超百万订单&#xff0c;可见科学运维体系的关键价值。高可用运维的核心是 “预防为主、快速响应”&#xff0c;通过指标监控、风险预判、应急处置三大环节…

作者头像 李华
网站建设 2026/2/9 18:25:55

从部署到调优全记录,Dify 1.11.1新特性测试实战经验分享

第一章&#xff1a;Dify 1.11.1 功能测试概述 Dify 1.11.1 是一个面向低代码 AI 应用开发平台的稳定版本&#xff0c;专注于提升工作流编排、模型集成与用户交互体验。该版本在推理性能、插件扩展性和多租户支持方面进行了优化&#xff0c;功能测试旨在验证核心模块的稳定性与边…

作者头像 李华
网站建设 2026/2/7 11:03:27

从零开始搭建Dify插件生态(完整开发流程+部署实践)

第一章&#xff1a;Dify插件生态概述Dify作为一个面向AI应用开发的低代码平台&#xff0c;其核心优势之一在于灵活可扩展的插件生态系统。该生态允许开发者通过插件机制集成外部服务、增强功能模块或自定义工作流&#xff0c;从而快速适配多样化的业务场景。插件可在数据接入、…

作者头像 李华