VUE element-ui 之table表格导出Excel功能封装(纯前端实现)

简介: VUE element-ui 之table表格导出Excel功能封装(纯前端实现)

需求:导出当前页面所有数据
步骤:
下载所需依赖:

npm install --save xlsx file-saver

引入依赖:
这里我进行了封装,由于很多页面都需要导出excel功能
js文件中引入依赖,进行导出方法封装:

import FileSaver from 'file-saver'
import XLSX from 'xlsx'
const utilWay = {
     // 导出excel
  exportExcel(id, excelName) { //方法接收两个参数:table表格的id, 导出的excel命名
    // 生成Excel工作簿对象
    var xlsxParam = { raw: true } // 只导出不解析
    var wb = XLSX.utils.table_to_book(document.querySelector('#' + id), xlsxParam )
    // 获取二进制字符串作为输出
    var wbout = XLSX.write(wb, {
    bookType: 'xlsx',
    book: true,
    type: 'array'
    })
    try {
      FileSaver.saveAs(
      // Blob: 对象表示一个不可变 原始数据的类文件对象,不一定是JS原生格式的数据。
      // File: 基于Blob,继承了blob的功能并将其扩展使其支持用户系统上的文件。
        new Blob([wbout], { type: 'appliction/octet-stream' }),
        // 设置导出的文件名称
        `${excelName}` + '.xlsx'
      )
    } catch (e) {
      if (typeof console !== 'undefined') console.log(e, wbout)
    }
    // 返回一个新创建的Blob对象,其内容由参数中给定的数组串联组成。
    return wbout
  }
}
export default utilWay 

需要导出excel的页面引用:
注意:必须为table设置唯一id

<el-table
  id="excel_table"
  border
  height="80vh"
  :data="Data"
  style="width: 100%"
>
<el-button @click="exportData">导出excel</el-button>
import utilWay  from '@/api/privateIp'
methods: {
    exportData() {
      utilWay.exportExcel('excel_table', '采购汇总')//这里传入表格id,导出后的excel文件名称,如果一个页面有多个导出可设置为变量进行参数传递
    }
}

此方法亲测有效。

相关文章
|
24天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
99 0
|
3天前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
|
7天前
|
NoSQL JavaScript 前端开发
报错场景:ant design vue前端登录时,输入的验证码是对的,但是一直提上验证码错误,登录不进去 报错信息(Error in execution; nested exception)
报错场景:ant design vue前端登录时,输入的验证码是对的,但是一直提上验证码错误,登录不进去 报错信息(Error in execution; nested exception)
18 0
|
14天前
【UI】 element ui 表格没有数据时用--填充
【UI】 element ui 表格没有数据时用--填充
20 2
|
15天前
|
JavaScript 前端开发 API
游戏开发入门:Python后端与Vue前端的协同工作方式
【4月更文挑战第11天】使用Python后端(Flask或Django)和Vue.js前端开发游戏变得流行,能提高开发效率和可维护性。本文指导如何构建这样的项目,包括设置环境、创建虚拟环境、搭建后端API及前端Vue组件,强调前后端协作和API接口的重要性。这种架构促进团队合作,提升代码质量和游戏体验。
|
16天前
|
供应链 JavaScript 前端开发
使用Django和Vue实现电子商务网站的后端和前端
【4月更文挑战第10天】本文介绍了使用Django和Vue构建电子商务网站的后端与前端方法。Django作为Python的Web框架负责后端,其模型-视图-控制器设计简化了商品管理、购物车和订单处理。Vue.js用于前端,提供数据驱动和组件化的用户界面。通过定义Django模型和视图处理请求,结合Vue组件展示商品和管理购物车,开发者可构建交互性强的电商网站。虽然实际开发涉及更多细节,但本文为入门提供了基础指导。
|
18天前
基于sortablejs实现拖拽element-ui el-table表格行进行排序
基于sortablejs实现拖拽element-ui el-table表格行进行排序
|
25天前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
52 0
|
1月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
1月前
|
Java API Apache
使用AOP+反射实现Excel数据的读取
使用AOP+反射实现Excel数据的读取