news 2025/12/18 23:44:16

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/18 23:44:10

基于STM32的自动售货机控制系统设计

第一章&#xff1a;系统核心硬件架构与选型 基于STM32的自动售货机控制系统以“高效交易、稳定出货”为核心&#xff0c;采用STM32F103ZET6作为主控芯片&#xff0c;其32位Cortex-M3内核与512KB Flash可满足多通道控制与支付交互需求。核心模块包括&#xff1a; 货道控制&#…

作者头像 李华
网站建设 2025/12/18 23:44:01

液压挖掘机回转能量回收系统设计与仿真

一、系统整体方案设计 液压挖掘机回转能量回收系统以“能量回收-存储-再利用”为核心逻辑&#xff0c;适配挖掘机回转制动阶段的能量特性&#xff0c;整体采用“液压蓄能电控调节”的混合架构。系统在原有回转液压回路基础上&#xff0c;新增能量回收支路与释放支路&#xff1a…

作者头像 李华
网站建设 2025/12/18 23:44:01

android 媒体之 MediaSession

一、框架1. MediaSession (媒体会话) • 角色&#xff1a; 核心枢纽和状态机。它是整个媒体播放控制的核心。 • 作用&#xff1a; 封装播放状态&#xff1a; 持有当前播放状态&#xff08;如播放/暂停、当前播放位置、播放速度、播放队列、当前媒体项元数据等&#xff09;…

作者头像 李华
网站建设 2025/12/18 23:43:58

校园网络规划

一、需求分析与总体目标 校园网络规划需综合考虑教学、科研、管理和生活等多场景需求&#xff0c;构建高速、稳定、安全、可扩展的网络基础设施。 主要需求&#xff1a; 带宽需求&#xff1a;支持高清视频教学、在线实验、大规模文件传输覆盖范围&#xff1a;教学楼、实验室、图…

作者头像 李华
网站建设 2025/12/18 23:43:40

护眼灯已足够优秀,为何仍需眼调节训练灯?答案藏在近视防控里

如今的优质护眼灯&#xff0c;早已是家庭学习场景中的“性能王者”——照度远超国标要求&#xff0c;确保读写区域光线均匀充足&#xff0c;无明显明暗死角&#xff1b;达到RG0蓝光豁免级标准&#xff0c;从根源上杜绝蓝光对眼睛带来的潜在伤害&#xff1b;搭配高显色指数与无感…

作者头像 李华
网站建设 2025/12/18 23:43:21

Visual Studio中的多态

目录 一、静态多态 1.函数重载 2.符号重载 3.静态多态的特点 二、动态多态 1.继承 虚方法 2.抽象类 3.动态多态的特点 4. 继承抽象类 与 抽象类 三、静态多态 与 动态多态 的对比 多态是面向对象编程的三大特性之一&#xff0c;指同一行为在不同对象上表现出不同的形…

作者头像 李华