vue3里将table表格中的数据导出为excel

想要实现前端对表格中的数据进行导出,这里推荐使用xlsx这个依赖库实现。

1、安装

复制代码
pnpm install xlsx

2、使用

javascript 复制代码
import * as XLSX from "xlsx";

直接在组件里导入XLSX库,然后给表格table通过ref创建响应式数据拿到table实例,将实例传给XLSX.utils.table_to_book()方法,再使用XLSX.writeFile()就可以下载excel文件了。具体方法请看demo源代码。

3、demo源代码

javascript 复制代码
<template>
  <div class="page6">
    <div style="display:flex;justify-content: flex-end">
      <el-button type="primary" @click="exportExcel">导出</el-button>
    </div>
    <el-table ref="tableRef" :data="tableData" stripe style="width: 100%">
      <el-table-column prop="date" label="Date" width="180" />
      <el-table-column prop="name" label="Name" width="180" />
      <el-table-column prop="address" label="Address" />
    </el-table>
  </div>
</template>

<script setup>
import * as XLSX from 'xlsx'
const tableRef = ref(null)
const exportExcel = () =>{
  const tableDom = tableRef.value?.$el;
  if (tableDom) {
    const wb = XLSX.utils.table_to_book(tableDom);
    XLSX.writeFile(wb, '表格数据.xlsx');
  }

}
const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
]
</script>

<style lang="less" scoped>
.page6{
  width: 100%;
  height: 100%;
  padding: 20px;
}

</style>

4、效果

下载的excel文件

相关推荐
用户8168694747251 分钟前
React 如何用 MessageChannel 模拟 requestIdleCallback
前端·react.js
izx8882 分钟前
从 Buffer 到响应式流:Vue3 实现 AI 流式输出的完整实践
javascript·vue.js·人工智能
heyCHEEMS3 分钟前
手搓 uniapp vue3 虚拟列表遇到的坑
前端
Duck不必5 分钟前
紧急插播:CVSS 10.0 满分漏洞!你的 Next.js 项目可能正在裸奔
前端·next.js
+VX:Fegn08955 分钟前
计算机毕业设计|基于springboot + vue在线考试管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
幸运小圣5 分钟前
动态组件【vue3实战详解】
前端·javascript·vue.js·typescript
用户413079810615 分钟前
终于不漏了-Android开发内存泄漏详解
前端
孟祥_成都6 分钟前
nest.js / hono.js 一起学!hono的设计思想!
前端·node.js
努力glow .7 分钟前
彻底解决VMware下ROS2中gazebo启动失败的问题
前端·chrome
阿笑带你学前端8 分钟前
开源记账 App 一个月迭代:从 v1.11 到 v2.2,暗黑模式、标签系统、预算管理全面升级
前端