news 2026/4/23 15:59:24

vue导出excel文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue导出excel文件

Vue.js 本身不提供直接导出 Excel 的功能,但可以通过以下几种方式实现:

1.前端导出方案

使用 xlsx 库(推荐)

npm install xlsx # 或 yarn add xlsx
<template> <button @click="exportExcel">导出Excel</button> </template> <script> import * as XLSX from 'xlsx'; export default { data() { return { tableData: [ { name: '张三', age: 25, city: '北京' }, { name: '李四', age: 30, city: '上海' } ] } }, methods: { exportExcel() { // 创建工作簿 const wb = XLSX.utils.book_new(); // 创建工作表 const ws = XLSX.utils.json_to_sheet(this.tableData); // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // 导出文件 XLSX.writeFile(wb, '用户数据.xlsx'); } } } </script>

使用 exceljs(功能更强大)

npm install exceljs npm install file-saver
import ExcelJS from 'exceljs'; import { saveAs } from 'file-saver'; async exportExcel() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Sheet1'); // 添加表头 worksheet.columns = [ { header: '姓名', key: 'name' }, { header: '年龄', key: 'age' }, { header: '城市', key: 'city' } ]; // 添加数据 this.tableData.forEach(item => { worksheet.addRow(item); }); // 保存文件 const buffer = await workbook.xlsx.writeBuffer(); const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); saveAs(blob, '用户数据.xlsx'); }

2.使用现成组件

vue-json-excel

npm install vue-json-excel
<template> <download-excel :data="tableData" :fields="jsonFields" name="用户数据.xlsx" > <button>导出Excel</button> </download-excel> </template> <script> import JsonExcel from 'vue-json-excel'; export default { components: { 'download-excel': JsonExcel }, data() { return { tableData: [...], jsonFields: { '姓名': 'name', '年龄': 'age', '城市': 'city' } } } } </script>

3.后端生成方案

如果数据量大或需要复杂格式,建议后端生成:

// 前端调用 exportExcel() { axios({ url: '/api/export/excel', method: 'GET', responseType: 'blob' // 重要:接收文件流 }).then(response => { const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = 'data.xlsx'; link.click(); window.URL.revokeObjectURL(url); }); }

4.简单表格导出

exportTable() { const table = document.querySelector('#your-table'); const wb = XLSX.utils.table_to_book(table); XLSX.writeFile(wb, '表格数据.xlsx'); }

注意事项

  1. 数据量大时:建议使用后端导出,避免浏览器内存溢出

  2. 格式化处理:日期、数字等特殊格式需要转换

  3. 样式需求:如需复杂样式,建议使用 exceljs

  4. 兼容性:xlsx 库兼容性较好,支持多种格式

推荐方案

  • 简单场景:使用 xlsx 库

  • 需要样式和复杂功能:使用 exceljs

  • 大数据量:后端生成

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

DL00308 - 高光谱遥感反演机器学习代码中的植被指数分析

DL00308-高光谱遥感反演机器学习代码植被指数分析python 原始光谱一阶导数光谱的相关性以及水平检验, 植被指数、遥感参数的相关系数以及水平检验, 去偏移值最小二乘回归最近在研究高光谱遥感反演机器学习代码&#xff0c;其中植被指数的分析部分真的很有趣&#x1f603;。 原始…

作者头像 李华
网站建设 2026/4/23 9:20:16

如何将外包与内部团队的平衡

在当今竞争激烈的商业环境中&#xff0c;企业在资源分配与团队管理上面临着前所未有的挑战。**要实现外包与内部团队的平衡&#xff0c;关键在于明确核心业务边界、建立协同机制、强化沟通与文化融合。**只有做到“取其所长、补己所短”&#xff0c;企业才能在保持灵活性的同时…

作者头像 李华
网站建设 2026/4/23 9:22:40

谁懂大龄程序员[特殊字符]‍[特殊字符]的痛啊

这是来自小红书一位后端开发工程师分享的和前段老婆关于裁员失业的焦虑。 说真的&#xff0c;这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型&#xff0c;挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis&#xff0c;稳稳当当过日子。 …

作者头像 李华
网站建设 2026/4/23 1:07:08

Docker(单机Kafka安装)

1. pull镜像 docker pull zookeeper docker pull wurstmeister/kafka2. 创建通信网络。zookeeper和kafka之间的通信 docker network create kafka_zk_net查看网络 docker network ls docker network inspect kafka_zk_net3. 创建容器 docker run --netkafka_zk_net --name z…

作者头像 李华
网站建设 2026/4/23 9:18:42

DDD碎片记录 01.落地到数据库设计

系统用例设计&#xff0c;分析系统需要完成的功能。分析系统的业务实体&#xff0c;在领域模型分析中采用类图的形式&#xff0c;每个类可以通过其属性来表述数据结构&#xff0c;又可以通过添加方法来描述对数据结构的处理。 因此在领域模型的设计过程中&#xff0c;即完成了对…

作者头像 李华
网站建设 2026/4/22 21:56:20

推荐汽车制造业拧紧工艺智能化解决方案有哪些?

拧紧工艺&#xff1a;汽车制造中的隐形守护者在当今汽车制造业的快节奏发展环境中&#xff0c;拧紧工艺系统作为连接关键零部件的隐形支柱&#xff0c;扮演着不可忽视的角色。想象一下&#xff0c;一辆汽车的发动机缸盖螺栓如果不精确拧紧&#xff0c;可能会导致密封失效&#…

作者头像 李华