news 2026/6/15 15:26:32

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/15 10:50:53

导师严选2026 AI论文工具TOP8:本科生毕业论文写作全攻略

导师严选2026 AI论文工具TOP8:本科生毕业论文写作全攻略 2026年AI论文工具测评:如何选到适合自己的写作助手 随着人工智能技术的不断进步,AI论文工具已成为本科生撰写毕业论文的重要辅助手段。然而,面对市场上琳琅满目的产品&…

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

高性能编程的秘密武器(C# Span深度实战解析)

第一章:高性能编程的基石——理解Span的核心价值在现代高性能编程中,内存管理与数据访问效率成为决定系统吞吐量的关键因素。Span 作为 .NET 中引入的一种轻量级、堆栈分配的结构体类型,为开发者提供了安全且高效的内存抽象能力。它能够在不触…

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

Java小白求职面试:从Spring Boot到微服务的技术深度探讨

场景:互联网大厂Java小白求职者面试 人物介绍: 面试官:一位严肃但经验丰富的技术专家。超好吃:Java小白求职者,刚毕业,充满求知欲。 第一轮提问:Spring Boot及Web框架 面试官:超好吃…

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

C#跨平台日志收集实战(日志架构设计大揭秘)

第一章:C#跨平台日志收集实战(日志架构设计大揭秘)在构建现代分布式系统时,统一的日志收集与分析能力是保障系统可观测性的核心。C# 作为主流后端开发语言之一,借助 .NET 的跨平台能力,可在 Windows、Linux…

作者头像 李华