vue vxe-table 复制数据到 Excel:支持带表头复制

在日常数据处理中,用户经常需要将表格中的数据复制到 Excel 进行二次编辑或存档。vxe-table 提供了强大的剪贴板功能,通过简单的配置即可实现复制单元格区域时自动包含表头,让粘贴到 Excel 的数据完整且规范。

配置

配置项 类型 说明
clipConfig.isCopyHeader Boolean 设为 true 后,复制时自动将表头行一起复制到剪贴板。
mouseConfig.area Boolean 必须设为 true,开启区域选取功能(用户可框选单元格)。
keyboardConfig.isClip Boolean 必须设为 true,启用键盘复制快捷键(Ctrl + C)。
areaConfig.multiple Boolean 可选,设为 true 支持同时选取多个不连续区域(按住 Ctrl)。
  • clipConfig.isCopyHeader 会影响粘贴行为------当启用该配置后,从表格复制的数据将默认包含表头,粘贴时需要注意格式匹配。如果不需要此行为,请保持默认 false。

代码

  • 选中区域:鼠标左键拖拽框选一组单元格,或按住 Ctrl 同时选中多个不连续区域。
  • 复制:按下 Ctrl + C(或右键菜单复制,需自行实现)。
  • 粘贴到 Excel:打开 Excel,选中对应起始单元格,按 Ctrl + V。
  • 结果:Excel 中将出现完整的表头和数据行,与表格中框选的区域结构一致。
  • 注意:由于开启了 isCopyHeader: true,复制的数据第一行为表头。如果只想复制数据而不包含表头,可将该配置设为 false。
html 复制代码
<template>
  <div>
    <vxe-grid v-bind="gridOptions"></vxe-grid>
  </div>
</template>

<script setup>
import { reactive } from 'vue'

const sexEditRender = reactive({
  name: 'VxeSelect',
  options: [
    { label: '女', value: '0' },
    { label: '男', value: '1' }
  ]
})

const gridOptions = reactive({
  border: true,
  height: 500,
  showOverflow: true,
  columnConfig: {
    resizable: true
  },
  mouseConfig: {
    area: true // 是否开启区域选取
  },
  areaConfig: {
    multiple: true // 是否启用多区域选取功能
  },
  clipConfig: {
    isCopyHeader: true // 是否启用复制自动带表头,启用后影响粘贴功能
  },
  editConfig: {
    mode: 'cell', // 单元格编辑模式
    trigger: 'dblclick' // 双击单元格激活编辑状态
  },
  keyboardConfig: {
    isAll: true, // 是否启用快捷键全选
    isClip: true, // 是否开启复制粘贴
    isEdit: true, // 是否开启任意键进入编辑(功能键除外)
    isDel: true, // 是否开启删除键功能
    isEsc: true // 是否开启Esc键关闭编辑功能
  },
  columns: [
    { type: 'seq', fixed: 'left', width: 60 },
    { field: 'name', fixed: 'left', title: '名字', editRender: { name: 'input' } },
    { field: 'role', title: '角色', editRender: { name: 'input' } },
    { field: 'sex', title: '性别', editRender: sexEditRender },
    { field: 'num', title: '分数', editRender: { name: 'VxeNumberInput' } },
    { field: 'age', title: '年龄', editRender: { name: 'VxeNumberInput' } },
    { field: 'address', title: '地址', width: 200, editRender: { name: 'input' } }
  ],
  data: [
    { id: 10001, name: '张三', role: '前端开发', sex: '0', num: 23, age: 28, address: '北京市17号' },
    { id: 10002, name: '李四', role: '测试人员', sex: '1', num: 23, age: 22, address: '江苏省27号' },
    { id: 10003, name: '老六', role: '项目经理', sex: '0', num: 23, age: 32, address: '深圳市19号' },
    { id: 10004, name: '小李', role: '后端开发', sex: '1', num: 456, age: 24, address: '江苏省47号' },
    { id: 10005, name: '老万', role: '设计师', sex: '1', num: 23, age: 42, address: '北京市18号' },
    { id: 10006, name: '小刘', role: '前端开发', sex: '0', num: 23, age: 38, address: '上海市17号' },
    { id: 10007, name: '老徐', role: '测试人员', sex: '1', num: 100, age: 24, address: '北京市19号' },
    { id: 10008, name: '老二', role: '设计师', sex: '0', num: 345, age: 34, address: '上海市11号' },
    { id: 10009, name: '小牛', role: '前端开发', sex: '1', num: 67, age: 52, address: '深圳市29号' },
    { id: 10010, name: '小帅', role: '测试人员', sex: '1', num: 23, age: 44, address: '北京市37号' },
    { id: 10011, name: '老魏', role: '后端开发', sex: '0', num: 56, age: 52, address: '深圳市12号' },
    { id: 10012, name: '小徐', role: '测试人员', sex: '1', num: 23, age: 16, address: '广州市16号' },
    { id: 10013, name: '小张', role: '设计师', sex: '1', num: 69, age: 16, address: '广州市46号' },
    { id: 10014, name: '老冯', role: '前端开发', sex: '0', num: 36, age: 36, address: '广州市66号' },
    { id: 10015, name: '小哥', role: '后端开发', sex: '0', num: 33, age: 47, address: '广州市56号' },
    { id: 10016, name: '李哥', role: '测试人员', sex: '1', num: 2, age: 42, address: '深圳市16号' }
  ]
})
</script>
  • 通过 clipConfig.isCopyHeader = true,vxe-table 可以轻松实现"复制带表头"的功能,极大提升了与 Excel 交互的效率。配合区域选取、多选等功能,用户可以快速导出所需数据片段。这一配置在实际业务报表、数据导出场景中非常实用。

https://vxetable.cn

相关推荐
腻害兔6 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
sugar__salt13 小时前
Vue3 表单双向绑定与响应式核心 API 技术详解
前端·javascript·vue.js
噢,我明白了13 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
郝亚军13 小时前
使用Vue 3和Nginx打包和部署Vue.js项目的一般步骤
前端·vue.js·nginx
REST_302714 小时前
告别Excel孤岛:一款任务链路可视化工具带来的真实改变
大数据·微服务·云计算·编辑器·excel·动态规划
阿懂在掘金15 小时前
企业级命令式弹窗方案:三行代码适配已有 Dialog
前端·vue.js·前端框架
YWL16 小时前
OpenLayers + Vue 2 使用指南(01)
前端·javascript·vue.js
达子66616 小时前
第8章_HarmonyOs开发图解 剪贴板
vue.js
森林的尽头是阳光18 小时前
tree回显问题
javascript·vue.js·elementui
qetfw19 小时前
MWU:Vue 3 + FastAPI 的 MaaFramework 跨平台 WebUI 源码
前端·vue.js·python·fastapi·开源项目·效率工具