news 2026/8/20 10:24:59

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/8/19 9:08:52

时序数据选型、存储模型与选型

时序数据选型、存储模型与选型 一、时序数据的特征与挑战 时间戳驱动&#xff1a;数据天然带有时间维度&#xff0c;典型场景包括监控指标、传感器采集、交易日志。高吞吐写入&#xff1a;数据持续产生&#xff0c;要求数据库具备批量写入与乱序处理能力。查询模式特殊&#xf…

作者头像 李华
网站建设 2026/8/19 15:24:15

基于微信小程序的家政服务系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

作者头像 李华
网站建设 2026/8/20 0:33:53

MindSpore高效训练指南:从数据流水线到混合精度实战

在昇腾&#xff08;Ascend&#xff09;NPU上进行深度学习模型训练时&#xff0c;我们经常会遇到GPU转NPU的代码迁移问题&#xff0c;或者发现算力虽然强劲&#xff0c;但训练速度受限于IO或显存。作为一名在昇腾生态摸爬滚打的开发者&#xff0c;今天我想分享几个基于MindSpore…

作者头像 李华
网站建设 2026/8/20 0:33:49

两阶段鲁棒优化在主动配电网动态无功优化中的实践

两阶段鲁棒优化的主动配电网动态无功优化 关键词&#xff1a;两阶段鲁棒优化&#xff0c;CCG算法&#xff0c;储能 仿真算例采用33节点&#xff0c;采用matlabyalmipcplex编写&#xff0c;两阶段模型采用CCG算法求解。 模型中一阶段变量主要包括01变量和无功优化变量&#xff0…

作者头像 李华
网站建设 2026/8/20 0:33:46

探索 DSPLLC 开关电源模块设计的宝藏世界

DSPLLC开关电源模块设计资料DSP数字LLC电源源代码原理图软件学习&#xff0c;包含磁件设计、软件设计报告、硬件设计报告、硬件原理、主功率计算书、LLC环路设计、仿真、BOM、使用说明&#xff0c;调试波形等全面且详细的全套资料最近在研究电源相关的技术&#xff0c;发现了一…

作者头像 李华
网站建设 2026/8/19 7:10:10

基于推荐算法的校园电子图书听书系统

Spring Boot基于推荐算法的校园电子图书听书系统是一个专为校园师生设计的数字化阅读平台。以下是对该系统的详细介绍&#xff1a; 一、系统背景与目的 随着信息技术的不断发展&#xff0c;数字化阅读已经成为校园阅读的新趋势。为了满足校园师生对电子图书和听书资源的需求&am…

作者头像 李华