el-table前端导出封装方法

1、引用文件准备

需要引进xlsx和fileSaver,[详情看官网](https://sheetjs.com/)

2、封装的方法

/**
	 * 前端导出整体方法,用于el-table表格及其伴生表格
	 * @Author   min
	 * @DateTime 2021-09-1
	 * @param    {String}  tableIdName [报表唯一id](必填)
	 * @param    {String}  exportFileName [导出文件名](不填默认 报表.xlsx)
	 * 在tableData赋值之后调用
	 */
	function exportTableToExcel(tableIdName, exportFileName){
		if(!tableIdName) return;
		setTimeout(() => {
			// 判断要导出的节点中是否有fixed的表格,如果有,转换excel时先将该dom移除,然后append回去,
			var fix = document.querySelector("#" + tableIdName + ' .el-table__fixed');
			var wb;
			var xlsxParam = { raw: true };//转换成excel时,使用原始的格式
			if (fix) {
				wb = XLSX.utils.table_to_book(document.querySelector("#" + tableIdName).removeChild(fix));
				document.querySelector("#" + tableIdName).appendChild(fix);
			} else {
				wb = XLSX.utils.table_to_book(document.querySelector("#" + tableIdName),xlsxParam);
			}
			/* 获取二进制字符串作为输出 */
			var wbout = XLSX.write(wb, {
				bookType: "xlsx",
				bookSST: true,
				type: "array"
			});
			var ad = document.createElement('a');
			ad.href = URL.createObjectURL(new Blob([wbout], { type: "application/octet-stream" }));
			ad.download = (exportFileName ? exportFileName : '报表') + ".xlsx";
			var event = new MouseEvent('click')
			ad.dispatchEvent(event);
		}, 600)
	}

3、使用

html:
<el-table id="out-table3"></el-table>
js使用:
exportTableToExcel('out-table3','报表名称')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值