当前位置: 首页 > news >正文

Vue 表格组件 vxe-table 灵活导出指定数据的 CSV 文件的用法D

在实际业务开发中,表格数据导出是高频需求。大多数场景下,我们导出的是表格当前展示的数据,但有时业务需要导出特定的数据集(如:筛选后的结果、选中的数据、或后端返回的原始数据)。本文将基于 vxe-table 组件,介绍如何通过 exportData 方法实现指定数据导出,并提供多种实用场景的解决方案。

exportData 方法说明

vxe-table提供了强大的导出功能,其 exportData 方法支持灵活的配置。关键在于 data 参数——当我们需要导出非表格当前显示的数据时,可以通过该参数传入自定义的数据源。

$table.exportData({type: 'csv',      // 导出格式:csv / xlsx / html / pdfdata: customList  // 自定义数据源,覆盖表格当前数据
})

代码

image

<template><div><vxe-button @click="exportEvent">直接导出</vxe-button><vxe-tableref="tableRef":export-config="{}":data="tableData"><vxe-column type="seq" width="70"></vxe-column><vxe-column field="name" title="Name"></vxe-column><vxe-column field="sex" title="Sex"></vxe-column><vxe-column field="age" title="Age"></vxe-column></vxe-table></div>
</template><script setup>
import { ref } from 'vue'const tableRef = ref()const tableData = ref([{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },{ id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' }
])
const exportEvent = () => {const $table = tableRef.valueif ($table) {const list = [{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },{ id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10005, name: 'Test5', role: 'Test', sex: 'Man', age: 32, address: 'Shanghai' },{ id: 10006, name: 'Test6', role: 'Develop', sex: 'Women', age: 24, address: 'Guangzhou' },{ id: 10007, name: 'Test7', role: 'Develop', sex: 'Man', age: 40, address: 'Shanghai' },{ id: 10008, name: 'Test8', role: 'Develop', sex: 'Women', age: 43, address: 'Guangzhou' },{ id: 10009, name: 'Test9', role: 'PM', sex: 'Man', age: 39, address: 'Shanghai' },{ id: 10010, name: 'Test10', role: 'Test', sex: 'Women', age: 29, address: 'test abc' }]$table.exportData({type: 'csv',data: list // 关键点:传入自定义数据})}
}
</script>

场景1,导出筛选后的数据

当表格开启了筛选功能,用户可能希望导出的是当前筛选结果,而非原始数据。此时可以获取筛选后的数据源传入。

const exportFilteredData = () => {const $table = tableRef.value// 获取表格当前筛选后的数据(需配合 vxe-table 的筛选功能)const filteredData = $table.getData()$table.exportData({type: 'csv',data: filteredData})
}

场景2,导出选中行的数据

例如,结合 checkbox 列,可以导出用户勾选的行。

const exportSelectedData = () => {const $table = tableRef.valueconst selectedRecords = $table.getCheckboxRecords()$table.exportData({type: 'csv',data: selectedRecords})
}

大数据量导出注意事项

当导出的数据量较大时(例如超过 5000 条),直接在前端导出可能导致页面卡顿。建议采用后端导出方式,vxe-table 的 exportData 也支持通过 url 参数直接请求后端接口。

$table.exportData({type: 'csv',url: '/api/export',  // 后端导出接口method: 'post',params: { ids: selectedIds }  // 传递必要参数
})

通过灵活运用 exportData 的 data 参数,可以轻松实现各种定制化的导出需求,极大地提升了表格组件的扩展性。

https://vxetable.cn

http://www.jsqmd.com/news/561088/

相关文章:

  • 大模型玩家必备:一文搞懂SentencePiece和Tiktoken,告别分词器加载失败
  • OFA图像描述模型AI编程辅助:自动生成代码注释中的图像描述
  • 2026社区团购小程序设计工具怎么选?微信卖货小程序怎么做? - 资讯焦点
  • 从需求到验收:手把手教你用JMeter+Postman编写完整测试方案
  • QT多线程定时任务实战:QTimer与QThread的高效协作与主线程通信
  • VINS-Mono实战解析(四)——从词袋模型到4-DOF优化的回环全链路
  • 突破微信设备限制:WeChatPad如何让多设备协同成为现实
  • 3DS破解安全升级:如何用SafeB9SInstaller避免变砖风险?
  • Vue3 项目实战:高德地图的深度集成与优化
  • 2026年留学党必看:SAT考前补习机构怎么挑?一文看懂所有关键点 - 品牌2026
  • 从LeNet到ResNet:一张图看懂CNN架构30年进化史,以及我们为什么不再需要手动设计特征
  • 避坑指南:MTK DRM屏兼容中,那些容易让你“点不亮”的硬件与配置细节(附TP复位脚案例)
  • kkFileView预览Word文档总失败?别急着重装,先检查这个端口配置(附排查脚本)
  • 终极免费方案:5步让Mac完美读写NTFS移动硬盘
  • Unity Input System手势实战:5分钟为你的AR/3D展示项目添加手势控制
  • OpenClaw+nanobot备份方案:自动化配置与数据同步
  • 10分钟搞定!UVR5-UI如何让音视频分离效率提升10倍?
  • 2026实测|BFBY淡纹眼霜:淡黑祛袋抗皱,全肤质适配更安心 - 资讯焦点
  • MyTV-Android:让老旧Android设备重获新生的直播解决方案
  • 终极指南:用C打造高性能Nintendo Switch模拟器Ryujinx的深度解析
  • 从MovieLens到你的业务:手把手复现KAR实验,看‘推理知识’如何让CTR模型AUC提升1.6%
  • Golang爬虫新境界——Chromedp实战:无头浏览器自动化操控微信扫码登录(附完整代码)
  • Ubuntu 20.04下编译OpenCV 3.2踩坑记:解决FFmpeg API报错,为海康相机驱动铺路
  • 精密电子锯玉石切割机自动化控制探索
  • ESP8266+DHT22+OLED:打造本地与云端双显示的智能温湿度监测站
  • 从行人到车辆:BDD100K和KITTI数据集上的多目标跟踪(MOT)避坑指南与调参心得
  • 告别OpenCV!在WinForm里用Sdcb.PaddleOCR做个本地图片文字识别小工具(C#/.NET 8)
  • 数据结构概念
  • AI模型量化部署:AI应用架构师的进阶之路
  • 华为eNSP实战:VRRP双机热备与负载均衡配置详解