当前位置:首页 > 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);

模板中使用

<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');

转换并导出

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>

导出方法

vue实现表格导出功能

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]));
}

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

相关文章

css怎么制作表格

css怎么制作表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,结合CSS可以自定义样式。以下是基本实现方法: HTML结构 <table> <th…

vue实现表格

vue实现表格

Vue实现表格的方法 在Vue中实现表格可以通过多种方式完成,包括使用原生HTML表格、第三方组件库或自定义组件。以下是几种常见的方法: 使用原生HTML表格 在Vue模板中直接使用HTML的&l…

如何实现vue表格联动

如何实现vue表格联动

实现 Vue 表格联动的方法 数据绑定与响应式更新 通过 Vue 的响应式特性,将多个表格的数据绑定到同一个数据源或计算属性。当一个表格的数据发生变化时,另一个表格会自动更新。例如: data()…

vue实现简单表格

vue实现简单表格

使用 Vue 实现简单表格 Vue 提供了多种方式实现表格功能,以下是基于 Vue 3 的两种常见方法: 基础表格实现 通过 v-for 指令循环渲染表格数据: <template>…

vue实现导出表格

vue实现导出表格

Vue 实现导出表格的方法 使用 xlsx 库导出 Excel 安装 xlsx 库 npm install xlsx 在 Vue 组件中引入 xlsx import * as XLSX from…

vue实现轨道功能

vue实现轨道功能

Vue 实现轨道功能的方法 轨道功能通常指在界面中实现元素沿特定路径移动的效果,例如进度条、时间轴或动画轨迹。以下是几种常见的实现方式: 使用 CSS 动画与 Vue 结合 通过 Vue 动态绑定样…