当前位置:首页 > VUE

vue实现表格导出功能

2026-02-25 06:58:23VUE

使用xlsx库实现表格导出

安装xlsx库

npm install xlsx

引入xlsx库

import XLSX from 'xlsx';

准备表格数据

const tableData = [
  { name: '张三', age: 25, gender: '男' },
  { name: '李四', age: 30, gender: '女' }
];

导出Excel文件

exportToExcel() {
  const ws = XLSX.utils.json_to_sheet(this.tableData);
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, "export.xlsx");
}

使用vue-json-excel插件

安装插件

npm install vue-json-excel

全局注册组件

import JsonExcel from 'vue-json-excel';
Vue.component('downloadExcel', JsonExcel);

模板中使用

vue实现表格导出功能

<download-excel 
  :data="tableData"
  :fields="json_fields"
  name="导出数据.xls">
  <button>导出Excel</button>
</download-excel>

定义导出字段

json_fields: {
  '姓名': 'name',
  '年龄': 'age',
  '性别': 'gender'
}

使用html-to-xlsx方案

安装依赖

npm install html-to-xlsx

获取表格HTML

const table = document.getElementById('exportTable');

转换并导出

vue实现表格导出功能

const htmlToXlsx = require('html-to-xlsx');
htmlToXlsx(table, 'export.xlsx');

自定义CSV导出

实现CSV导出方法

exportToCSV() {
  const csvContent = "data:text/csv;charset=utf-8,";
  const headers = Object.keys(this.tableData[0]).join(",");
  const rows = this.tableData.map(item => 
    Object.values(item).join(",")
  ).join("\n");

  const encodedUri = encodeURI(csvContent + headers + "\n" + rows);
  const link = document.createElement("a");
  link.setAttribute("href", encodedUri);
  link.setAttribute("download", "export.csv");
  document.body.appendChild(link);
  link.click();
}

使用Element UI的表格导出

安装Element UI

npm install element-ui

引入组件

import { Table, TableColumn, Button } from 'element-ui';

表格结构

<el-table :data="tableData" ref="exportTable">
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
<el-button @click="exportExcel">导出</el-button>

导出方法

exportExcel() {
  import('@/vendor/Export2Excel').then(excel => {
    const tHeader = ['姓名', '年龄'];
    const filterVal = ['name', 'age'];
    const data = this.formatJson(filterVal, this.tableData);
    excel.export_json_to_excel({
      header: tHeader,
      data,
      filename: '导出数据'
    });
  });
},
formatJson(filterVal, jsonData) {
  return jsonData.map(v => filterVal.map(j => v[j]));
}

标签: 表格功能
分享给朋友:

相关文章

vue实现倍速播放功能

vue实现倍速播放功能

实现倍速播放功能的方法 在Vue中实现倍速播放功能通常涉及HTML5的<video>元素或第三方播放器库(如video.js)的API调用。以下是具体实现方式: 使用原生HTML5…

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 使用window.print()方法 Vue中可以直接调用浏览器的window.print()方法实现打印功能。这种方法简单快捷,适用于打印整个页面或特定区域。 meth…

在vue实现学生表格

在vue实现学生表格

实现学生表格的基本结构 在Vue中实现学生表格需要使用<table>标签结合Vue的数据绑定功能。准备一个数组存储学生数据,通过v-for指令动态渲染表格行。 <template…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

uniapp支付功能怎么实现

uniapp支付功能怎么实现

uniapp支付功能实现方法 准备工作 注册微信支付、支付宝等平台的开发者账号,获取必要的商户ID(mch_id)、API密钥(key)、应用ID(appid)等信息。确保项目已配置好相关支付SDK。…

h5实现表格样式

h5实现表格样式

实现H5表格样式的方法 使用HTML和CSS创建基础表格 在HTML中,表格通过<table>标签定义,配合<tr>(行)、<td>(单元格)和<th>…