Vue前端表格导出Excel文件的图文教程
作者:Amazing_time 发布时间:2024-04-09 10:46:45
标签:表格,导出,前端
前言
分享一个Vue前端导出Excel文件的方法。记录学习!
功能需求:将表格的全部数据导出Excel格式的文件
前端:Vue3+Element-Plus
这个导出方法全部为前端操作,后端只需要传入表格数据到前端即可(基础的多表查询,用的内连接)
一、实现
1. 页面
2.代码
2.1 核心方法
/**
* 表格数据导出Excel实际方法
* @param list
*/
const exportList = (list) => {
//表格表头,导出表头
let tableHeader = [['#', '资产编号', '资产名称', '资产类别', '资产型号', "资产单价", "资产金额",
"生产厂家", "生产日期", "购买日期", "购买人", "状态", "库存数量"]]
list.forEach((item, index) => {
let rowData = []
//导出内容的字段
rowData = [
index + 1,
item.zcbh,
item.zcmc,
item.name,
item.zcxh,
item.zcdj,
item.zcje,
item.sccj,
currencyFormatDate(item.scrq),
currencyFormatDate(item.gmrq),
item.gmr,
item.sts,
item.kcsl,
]
tableHeader.push(rowData)
})
let wb = XLSX.utils.book_new()
let ws = XLSX.utils.aoa_to_sheet(tableHeader)
XLSX.utils.book_append_sheet(wb, ws, '资产设备基本信息') // 工作簿名称
XLSX.writeFile(wb, '资产设备基本信息.xlsx') // 保存的文件名
}
将这个导出方法单独封装出来,带一个参数,即需要导出的所有数据的List集合,那么在调用的时候传参即可使用。
tableHeader 定义表格的表头(此处并不是很严谨,因为还包含了表格的数据,暂时为空,后面遍历时传入)。
rowData 是表格具体数据内容的数组,遍历时传入。
tableHeader.push(rowData) 将内容放入tableHeader中,形成完整的表格数据。
let wb = XLSX.utils.book_new() 定义表格实例。
let ws = XLSX.utils.aoa_to_sheet(tableHeader) 创建工作簿,将表格内容放入工作簿。
2.2 调用方法
/**
* 表格数据导出Excel调用方法
*/
const exportExcel = () => {
ElMessageBox.confirm(
'确定导出资产设备基本信息表吗?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(async () => {
let list = [];
const res = await request.get("asset/listAll");
console.log(res)
list = res.data.assetsAllList
exportList(list);
if (res.data.code === 200) {
ElMessage({
type: 'success',
message: '即刻开始下载',
})
}
})
.catch(() => {
})
}
await request.get(“asset/listAll”) 请求后端接口,拿到结果。将结果中的集合赋值给提前定义好的list数组list = res.data.assetsAllList。用了MessageBox消息弹框,根据自己的实际需求哈用到了异步等待,上面的request.get是自己封装的axios方法 3.演示
结束
来源:https://blog.csdn.net/m0_59420288/article/details/128796252
0
投稿
猜你喜欢
- 开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。查看本站首页原代码,可以看到第一行就是:<!DOCTYPE h
- 发邮件是一种很常见的操作,本篇主要介绍一下如何用python实现自动发件。import smtplibfrom email.mime.tex
- 首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同。因为我是搭配 MySQL InnoDB
- 其实网上已经有许多python语言书写的串口,但大部分都是python2写的,没有找到一个合适的python编写的串口助手,只能自己来写一个
- 有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。例如在一个含500个字符串的d
- 本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法。分享给大家供大家参考,具体如下:问题:从序列中移除重复的元素,但仍然
- 在python用import或者from...import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我
- 本文实例讲述了php tpl模板引擎定义与使用。分享给大家供大家参考,具体如下:tpl.php<?phpnamespace tpl;/
- 本文实例讲述了Python Web框架之Django框架Form组件用法。分享给大家供大家参考,具体如下:Form简介在HTTP中,表单(f
- 本文实例讲述了python单向循环链表原理与实现方法。分享给大家供大家参考,具体如下:单向循环链表单链表的一个变形是单向循环链表,链表中最后
- 项目需求:用户注册页面注册之后,系统会发送一封邮件到用户邮箱,用户点击链接以激活账户,其中链接中的用户信息需要加密处理一下其中激活自己邮箱的
- 列表添加元素append(),extend(),insert(),+list区别回忆初学python的时候,对列表list添加元素时,对类表
- 制作圆角导航其实跟制作圆角边框是一样的道理,有一种很常见的方法就是使用CSS绝对定位,切四个圆角的小图片,然后分别定位在四个角,这样就可以实
- 关于tensor.repeat()的使用考虑到很多人在学习这个函数,我想在这里提 一个建议:强烈推荐 使用 einops 模块中的 repe
- 什么是异步?含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,
- 一、简单使用def TestLogBasic(): import logging  
- Python适配器模式,代码,思考等# -*- coding: utf-8 -*-# author:baoshanclass Compute
- 目录前言filestools库介绍一行代码给图片加水印总结前言版权相当重要,对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个l
- 在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的
- RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议。RDPY 提供了如下 RDP 和 VNC 支持:●RDP