news 2026/6/10 14:02:27

HoRain云--Vue导出Excel的5种实用方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Vue导出Excel的5种实用方法

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

Vue实现导出Excel的多种方式

1. 原生JavaScript实现(CSV格式)

2. 使用SheetJS (xlsx)库

3. 使用exceljs库

4. 使用Export2Excel插件

5. 通过后端接口导出

选择建议


Vue实现导出Excel的多种方式

在Vue项目中实现Excel导出功能是常见的需求,根据知识库信息,以下是实现Excel导出的5种主要方法:

1. 原生JavaScript实现(CSV格式)

实现原理:将数据转换为CSV格式字符串,使用Blob对象创建文件,通过创建临时URL触发下载。

安装:无需额外安装依赖

代码示例

export function exportToCSV(filename, rows) { const processRow = (row) => { return row.map(value => { if (value === null || value === undefined) return '' value = String(value) value = value.replace(/"/g, '""') if (value.search(/[,"]/g) >= 0) { value = `"${value}"` } return value }).join(',') } let csvContent = '' if (rows.length > 0) { csvContent += processRow(Object.keys(rows[0])) + '\r\n' rows.forEach(row => { csvContent += processRow(Object.values(row)) + '\r\n' }) } const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }) const link = document.createElement('a') const url = URL.createObjectURL(blob) link.setAttribute('href', url) link.setAttribute('download', filename) link.style.visibility = 'hidden' document.body.appendChild(link) link.click() document.body.removeChild(link) } // Vue组件中使用 methods: { exportData() { const data = [ { id: 1, name: '张三', age: 25 }, { id: 2, name: '李四', age: 30 } ] exportToCSV('用户数据.csv', data) } }

优点:无需额外依赖,简单轻量缺点:只能导出CSV格式,功能有限

2. 使用SheetJS (xlsx)库

安装

npm install xlsx file-saver --save

代码示例

import XLSX from 'xlsx' import { saveAs } from 'file-saver' export default { methods: { exportToExcel() { // 准备数据 const data = [ { name: "John Doe", email: "john@example.com", age: 30 }, { name: "Jane Smith", email: "jane@example.com", age: 25 } ] // 转换为工作表 const ws = XLSX.utils.json_to_sheet(data) // 设置列宽 ws['!cols'] = [ { wch: 20 }, { wch: 30 }, { wch: 10 } ] // 创建工作簿 const wb = XLSX.utils.book_new() XLSX.utils.book_append_sheet(wb, ws, "Users") // 触发下载 XLSX.writeFile(wb, "Users.xlsx") } } }

优点:功能强大,支持Excel格式,可自定义样式缺点:需要引入两个依赖库

3. 使用exceljs库

安装

npm install exceljs

代码示例

import ExcelJS from 'exceljs' export default { methods: { async exportToExcel() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('My Sheet'); // 设置列标题 worksheet.columns = [ { header: "身份证号", key: "id", width: 10}, { header: "姓名", key: "name", width: 10 }, { header: "日期", key: "date", width: 10 }, { header: "项目编号", key: "code", width: 10 } ]; // 添加数据 this.tableData.forEach(item => { worksheet.addRow(item) }); // 设置表头样式 const style = { font: { bold: true } }; worksheet.getRow(1).font = style.font; // 导出Excel文件 const fileName = 'XXX文件.xlsx'; const buffer = await workbook.xlsx.writeBuffer(); const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); saveAs(blob, fileName); } } }

优点:API清晰,支持复杂样式和多Sheet缺点:对大数据量处理性能稍差

4. 使用Export2Excel插件

安装

npm install file-saver script-loader --save

使用步骤

  1. 将插件文件放入项目目录
  2. 在Vue组件中引入

代码示例

import('@/vendor/Export2Excel').then(excel => { excel.export_json_to_excel({ header: ['姓名', '工资'], data: [ ['刘备', 100], ['关羽', 500] ], filename: 'excel-list', autoWidth: true, bookType: 'xlsx' }) })

优点:简单易用,适合快速实现缺点:需要额外处理数据格式

5. 通过后端接口导出

实现方式:前端发送请求到后端接口,后端生成Excel文件并返回URL

代码示例

export default { methods: { exportToExcel() { this.$http.get('/api/export-excel').then(response => { let url = response.data.url; window.location.href = url; }); } } }

优点:适合大数据量导出,减轻前端压力缺点:需要后端支持,增加服务器负担

选择建议

以上方法涵盖了Vue项目中实现Excel导出的主流方式,根据项目需求和数据量大小选择合适的方法即可。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

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

太原代写标书机构

太原代写标书机构:专业服务助力项目成功引言在激烈的市场竞争中,一份高质量的标书是企业中标的关键。太原作为山西省的省会城市,拥有众多优质的代写标书机构,为企业提供专业的标书编写服务。本文将深入探讨太原代写标书机构的服务…

作者头像 李华
网站建设 2026/6/10 12:52:53

人物静止镜头更适合HeyGem处理?动态画面适配分析

人物静止镜头更适合HeyGem处理?动态画面适配分析 在虚拟主播、企业宣传和在线教育日益依赖数字人内容的今天,AI驱动的口型同步技术正以前所未有的速度改变视频生产方式。像 HeyGem 这样的语音驱动数字人生成系统,让用户只需一段音频和一张人…

作者头像 李华
网站建设 2026/6/10 11:48:11

【2025最新】基于SpringBoot+Vue的志愿服务管理系统管理系统源码+MyBatis+MySQL

摘要 随着社会公益事业的快速发展,志愿服务管理的信息化需求日益增长。传统志愿服务管理模式依赖人工记录和纸质档案,存在效率低下、数据易丢失、信息共享困难等问题。数字化管理系统的引入能够有效提升志愿服务的组织效率,实现志愿者、活动、…

作者头像 李华
网站建设 2026/6/10 12:27:23

Java SpringBoot+Vue3+MyBatis 智慧草莓基地管理系统系统源码|前后端分离+MySQL数据库

摘要 随着现代农业技术的快速发展,智慧农业成为提升农业生产效率和管理水平的重要方向。草莓种植作为高附加值农业产业,对环境和管理的精细化要求较高,传统的人工管理模式难以满足现代草莓基地的需求。智慧草莓基地管理系统通过信息化手段整合…

作者头像 李华
网站建设 2026/6/10 14:19:58

【C# Span性能优化终极指南】:揭秘高效内存管理的5大核心技巧

第一章:C# Span性能优化概述在高性能编程场景中,数据的高效访问与内存管理是关键瓶颈。C# 中的 Span 类型为栈和托管堆上的连续内存提供了统一、安全且无额外开销的抽象,极大提升了处理字符串、数组和原生内存时的性能表现。Span的核心优势 避…

作者头像 李华
网站建设 2026/6/9 19:59:55

基于java+ vue小区物业管理系统(源码+数据库+文档)

小区物业管理 目录 基于springboot vue小区物业管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue小区物业管理系统 一、前言 博主介绍&…

作者头像 李华