Vue前端表格导出Excel文件的图文教程

 更新时间:2023年04月24日 12:01:15   作者:Amazing_time  
我们在开发的时候会经常用的导出excel表格功能,刚好自己开发有遇到,就记录一下,下面这篇文章主要给大家介绍了关于Vue前端表格导出Excel文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

分享一个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集合,那么在调用的时候传参即可使用。

  1. tableHeader 定义表格的表头(此处并不是很严谨,因为还包含了表格的数据,暂时为空,后面遍历时传入)。
  2. rowData 是表格具体数据内容的数组,遍历时传入。
  3. tableHeader.push(rowData) 将内容放入tableHeader中,形成完整的表格数据。
  4. let wb = XLSX.utils.book_new() 定义表格实例。
  5. 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.演示

结束

到此这篇关于Vue前端表格导出Excel文件的文章就介绍到这了,更多相关Vue前端表格导出Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3使用Pinia的store的组件化开发模式详解

    vue3使用Pinia的store的组件化开发模式详解

    这篇文章主要介绍了vue3使用Pinia的store的组件化开发模式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • vue中Axios的封装和API接口的管理示例详解

    vue中Axios的封装和API接口的管理示例详解

    这篇文章主要介绍了vue中Axios的封装和API接口的管理,主要目的就是在帮助我们简化代码和利于后期的更新维护,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Vue.js教程之axios与网络传输的学习实践

    Vue.js教程之axios与网络传输的学习实践

    这篇文章主要给大家介绍了Vue.js之axios与网络传输的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟随小编一起来学习学习吧。
    2017-04-04
  • 使用canvas实现一个vue弹幕组件功能

    使用canvas实现一个vue弹幕组件功能

    这篇文章主要介绍了使用canvas实现一个vue弹幕组件功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 详解如何创建基于vite的vue项目

    详解如何创建基于vite的vue项目

    vite 这个是尤大开发的新工具,目的是以后替代webpack,下面这篇文章主要给大家介绍了关于如何创建基于vite的vue项目的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • vue中i18n的安装与几种使用方式详解

    vue中i18n的安装与几种使用方式详解

    在一些网站经常可以看到切换语言包,将网站转化成多种语言版本的情况,下面这篇文章主要给大家介绍了关于vue中i18n的安装与几种使用方式的相关资料,需要的朋友可以参考下
    2022-09-09
  • vue页面使用js实现前端打印功能

    vue页面使用js实现前端打印功能

    这篇文章主要介绍了vue页面使用js实现前端打印功能,文中通过图文结合的方式给大家讲解的非常详细,对大家实现打印功能有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • vue3中组件传值的多种方法总结

    vue3中组件传值的多种方法总结

    学习过vue2的宝子们肯定知道,组件传值是vue项目开发过程中必不可少的功能场景,下面这篇文章主要给大家介绍了关于vue3中组件传值的多种方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • vue-cli如何引入bootstrap工具的方法

    vue-cli如何引入bootstrap工具的方法

    本篇文章主要介绍了vue-cli如何引入bootstrap工具的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • vue cli使用iview自定义主题遇到的坑及解决

    vue cli使用iview自定义主题遇到的坑及解决

    vue cli使用iview自定义主题遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论