前端实现element-ui table表格组件数据导出为excel表格

安装插件

npm install --save xlsx file-saver

封装导出方法

创建exportExcel.js文件

import FileSaver from 'file-saver'
import * as XLSX from 'xlsx';

//导出
export default function exportExcel(name) {
	//转换成excel时,使用原始的格式
	var xlsxParam = { raw: true };
	let fix = document.querySelector(".el-table__fixed");
	let wb;
	//判断有无fixed定位,如果有的话去掉,后面再加上,不然数据会重复
	if(fix) {
		wb = XLSX.utils.table_to_book(
		document.querySelector("#tableId").removeChild(fix),xlsxParam);
		document.querySelector("#tableId").appendChild(fix);
	} else {
		wb = XLSX.utils.table_to_book(document.querySelector("#tableId"),xlsxParam);
	}
	var wbout = XLSX.write(wb, {
		bookType: "xlsx",
		bookSST: true,
		type: "array",
	});
	try {
		FileSaver.saveAs(new Blob([wbout], { 
			type: "application/octet-stream" }), 
			`${name}_${new Date().getTime()}.xlsx`
		); 
	} catch (e) {
		if (typeof console !== "undefined") console.log(e, wbout);
	}
	return wbout;
}

页面引入方法

<template>
	<div>
		<el-button @click="exportTable">导出</el-button>
		<el-table id="tableId" :data="tableData" style="width: 100%">
		  <el-table-column  prop="date" label="日期" width="180"></el-table-column>
		  <el-table-column  prop="name" label="姓名" width="180"></el-table-column>
		  <el-table-column prop="address" label="地址"></el-table-column>
		</el-table>
	</div>
    
  </template>

  <script>
	import exportExcel from '@/utils/exportExcel.js'  

    export default {
      data() {
        return {
          tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          }]
        }
      },
	  methods:{
	  	exportTable(){
	  		exportExcel('表格')
	  	}
	  }
    }
  </script>

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
element-ui是一套基于Vue.js的UI框架,其中的table表格组件提供了许多强大的功能和骚操作。 首先,element-uitable表格支持对数据进行排序操作。只需设置column的sortable属性为true,即可实现对某一列数据的升降序排列,方便用户快速找到所需的信息。 其次,table表格还支持对数据进行筛选操作。通过设置filters属性,可以在表头中显示可选的筛选项,用户可以选择自己需要的筛选条件,从而快速过滤数据,提高表格的可读性和实用性。 此外,element-uitable表格还支持分页功能。通过设置pagination属性,可以实现表格数据的分页展示,方便用户浏览大量数据,同时也可以通过自定义分页器的样式和布局,满足不同项目的需求。 另外,table表格还提供了自定义列模板的功能。通过设置scoped slot,可以自定义表格中每一列的展示方式,包括渲染不同的DOM元素、添加操作按钮等,非常灵活。 此外,element-uitable表格还提供了可编辑的功能。通过设置column的editable属性为true,可以实现编辑表格数据的功能,用户可以直接在表格中进行数据的修改,提高数据的编辑效率。 最后,element-uitable表格还支持表格数据导出和导入。通过设置导出按钮和导入事件,可以方便地将表格数据导出Excel或导入Excel数据表格中,提高了数据的共享和交互性。 综上所述,element-ui中关于table表格的这些骚操作,使得我们可以更方便地对表格数据进行排序、筛选、分页、自定义列模板、编辑、导出和导入等操作,提高了表格的可读性、编辑效率和交互性,满足了不同项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值