vue3前端实现导出Excel功能

前端实现导出功能可以使用一些插件
我使用的是xlsx库
1.首先我们需要在vue3的项目中安装xlsx库。可以使用npm 或者 pnpm来进行安装

npm install xlsx

或者

pnpm install xlsx

2.在vue组件中引入xlsx库

import * as XLSX from 'xlsx';

3.定义导出实例方法

const exportExcel = () => {// 准备要导出的数据,这里假设你的数据存储在dataArray中const dataArray = [{ name: 'John', age: 30, address: 'New York' },{ name: 'Jane', age: 25, address: 'London' },{ name: 'Mike', age: 32, address: 'San Francisco' },];// 将数据转换为工作表const ws = XLSX.utils.json_to_sheet(dataArray);// 创建一个新的工作簿,并将工作表添加到工作簿中const wb = XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');// 导出为Excel文件// 如果需要设置样式,则使用XLSXStyle.writeFile(wb, '文件名.xlsx');XLSX.writeFile(wb, '表格数据.xlsx');
}

完整代码演示

<template><div><button @click="exportExcel">导出Excel</button><!-- 你可以在这里添加其他内容,如表格等 --></div>
</template>
<script setup>
import { ref } from 'vue';
import * as XLSX from 'xlsx';const exportExcel = () => {// 准备要导出的数据,这里假设你的数据存储在dataArray中const dataArray = [{ name: 'John', age: 30, address: 'New York' },{ name: 'Jane', age: 25, address: 'London' },{ name: 'Mike', age: 32, address: 'San Francisco' },];//需要注意的是,这样导出来的数据表头显示的是name,age,address,并不是中文,如果想要中文的话需要做一下处理const data = []var titlist = ['名称','年龄','时间',]data.push(titlist)exportExcel .value.forEach((item) => {var itemArr = [item.name,item.age,item.address,]data.push(itemArr)})// 将数据转换为工作表const ws = XLSX.utils.json_to_sheet(data);// 创建一个新的工作簿,并将工作表添加到工作簿中const wb = XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');// 导出为Excel文件// 如果需要设置样式,则使用XLSXStyle.writeFile(wb, '文件名.xlsx');XLSX.writeFile(wb, '表格数据.xlsx');
};
</script>

tip:

  • 数据格式:确保你的数据格式正确,以便能够正确的导出到excel文件中。
  • 样式设置:如果你需要为Excel文件中的单元格设置样式,可以使用xlsx-style库。在设置样式时,需要了解xlsx-style库提供的样式选项。
  • 大数据量处理:如果你的数据非常大,导出过程中时间会很长,需要增加提示来提升用户体验。

好了,以上就是全部代码啦,希望可以帮到你~

看到这如果对你有帮助的话,不如来一波点赞加关注吧~
感谢支持~
加个关注不迷路~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…

Redis配合唯一序列号实现接口幂等性方案

1.原理 可以在客户端每次请求服务端的时候&#xff0c;客户端请求中携带一个短时间内唯一不重复的序列号来确保其唯一性&#xff0c;这个序列号常见的几种形式有&#xff1a;基于时间戳、用户ID和随机数的组合&#xff1b;基于请求的来源与客户端生成的唯一序列号组合 2.方案…

代码安全规范1.1

命令注入是指应用程序执行命令的字符串或字符串的一部分来源于不可信赖的数据源&#xff0c;程序没有对这 些不可信赖的数据进行验证、过滤&#xff0c;导致程序执行恶意命令的一种攻击方式。 例 1 &#xff1a;以下代码通过 Runtime.exec() 方法调用 Windows 的 dir 命…

Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)

Jenkins实现自动化部署Springboot项目到Docker容器 引言:为什么需要自动化部署? 在软件开发中,频繁的手动部署既耗时又容易出错。通过 Docker + Jenkins + Git 的组合,您可以实现: ✅ 一键部署:代码推送后自动构建和部署🐳 环境一致性:Docker 确保开发、测试、生产环…

第二届智慧教育与计算机技术国际学术会议(IECT 2025)

在数字化浪潮中&#xff0c;智慧教育与计算机技术的深度融合正重构教育生态。智能教学系统打破传统课堂的单向灌输模式&#xff0c;通过机器学习分析学习数据&#xff0c;为学生生成个性化学习路径&#xff0c;推动被动接受向主动探索转型。这对教育体系提出核心诉求&#xff1…

驱控边界在哪里?知名舵机品牌伟创动力CNTE2025展带来答案

2025年6月12日&#xff0c;北京国防科技装备展将再度启幕。作为微型驱控领域的代表性厂商&#xff0c;伟创动力&#xff08;Kpower&#xff09;将带来覆盖舵机、减速齿轮箱、无刷电机及一体化驱控模组在内的全系解决方案&#xff0c;舵机产品回应一个至关重要的技术命题——“国…

Day46 Python打卡训练营

知识点回顾&#xff1a; 1. 不同CNN层的特征图&#xff1a;不同通道的特征图 2. 什么是注意力&#xff1a;注意力家族&#xff0c;类似于动物园&#xff0c;都是不同的模块&#xff0c;好不好试了才知道。 3. 通道注意力&#xff1a;模型的定义和插入的位置 4. 通道注意力后…

专业级PDF转CAD解决方案

PDF 文件因其出色的便携性和稳定性&#xff0c;已成为许多用户的首选格式。但在涉及图像编辑或精细调整时&#xff0c;CAD 文件显然更具优势。 这款 CAD 图纸转换工具&#xff0c;界面清爽、操作直观&#xff0c;是处理图纸文件的理想助手。 它不仅支持不同版本 CAD 文件之间…

PDF文件如何转换格式?简单教程来了

PDF 格式以其高兼容性和稳定性被广泛使用&#xff0c;但有时为了便于编辑或满足特定软件的要求&#xff0c;我们需要将其转换为其他格式&#xff0c;如 Word、Excel、图片等。那如何将PDF转换成其他格式文件呢&#xff1f;其实方法很简单&#xff0c;不清楚的小伙伴一起来看看吧…

三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学

在构建符合 RESTful 原则或追求用户体验流畅性的 Web 应用时&#xff0c;“重定向后刷新”&#xff08;PRG - Post/Redirect/Get&#xff09;模式是避免表单重复提交、实现页面无刷新跳转的黄金法则。然而&#xff0c;重定向&#xff08;REDIRECT:&#xff09;的本质是客户端发…

android手势创建及识别保姆级教程

手势交互&#xff0c;简单来说&#xff0c;就是通过手指在屏幕上的滑动、点击、缩放等动作与设备沟通的方式&#xff0c;早已成为现代移动设备用户体验的核心支柱。想想看&#xff0c;无论是日常刷短视频时的上下滑动&#xff0c;还是地图导航时的双指缩放&#xff0c;甚至是游…

Python | Windows11通过离线方式安装pyserial

导言 因公司网络访问的限制&#xff0c;没办法使用pip install pyserial轻松地安装pyserial库。 打开网页&#xff1a;https://pypi.org/project/pyserial/#files 下载.whl cmd命令行 如下是命令行指令&#xff1a; pip install .\pyserial-3.5-py2.py3-none-any.whlpython …

【nano与Vim】常用命令

使用nano编辑器 保存文件 &#xff1a; 按下CtrlO组合键&#xff0c;然后按Enter键确认文件名。 退出编辑器 &#xff1a; 按下CtrlX组合键。 使用vi或vim编辑器 保存文件 &#xff1a; 按Esc键退出插入模式&#xff0c;然后输入:w并按Enter键保存文件。 退出编辑器 &#xf…

(Python网络爬虫);抓取B站404页面小漫画

目录 一. 分析网页 二. 准备工作 三. 实现爬虫 1. 抓取工作 2. 分析工作 3. 拼接主函数&运行结果 四. 完整代码清单 1.多线程版本spider.py&#xff1a; 2.异步版本async_spider.py&#xff1a; 经常逛B站的同志们可能知道&#xff0c;B站的404页面做得别具匠心&…

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…

ROS1: 使用rosbag的方式将点云topic保存为pcd文件

ROS1: 使用rosbag的方式将点云topic保存为pcd文件。 分为两步&#xff1a;步骤1&#xff1a;通过rosbag录制点云 &#xff0c;步骤2&#xff1a;通过ros1将rosbag保存为点云pcd文件。 ------------------------ 步骤一&#xff1a;指令示例如下&#xff1a; # topic 名称&a…

MySQL 高级学习篇

一、连结&#xff08;Join&#xff09; 1.1 概念 联结&#xff08;Join&#xff09;操作用于将多个表中的列组合在一起&#xff0c;形成一个新的查询结果集。它允许我们从多个表中提取数据&#xff0c;并基于表之间的关系进行查询。 1.2 类型 1. 内联结&#xff08;INNER J…

clickhouse 学习总结

在 ClickHouse 中&#xff0c;配置文件通常位于 /etc/clickhouse 目录下。这个目录包含了多个配置文件&#xff0c;用于控制 ClickHouse 的各种服务&#xff08;如服务器、用户、远程服务等&#xff09;的配置。 数据存储目录/var/lib/clickhouse 配置 文件目录 /etc/clickho…

理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析

前言 在JavaScript面试中&#xff0c;map和parseInt的组合常常被用作考察候选人对这两个方法理解深度的题目。让我们通过一个简单的例子来深入探讨其中的原理。 问题现象 [1, 2, 3].map(parseInt) // 输出结果是什么&#xff1f;很多人可能会预期输出[1, 2, 3]&#xff0c;但…