el-table 多级表头导出(适用于表头固定,表格有固定列)

本文介绍如何在使用ElementUI的el-table组件时,实现多级表头固定和表格有固定列情况下的数据导出功能。文章提供所需依赖的安装和示例代码,内容包括导出时获取表格DOM元素的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用elementUI组件库开发中,少不了el-table的导出功能,以下是el-table多级表头固定,数据项固定情况下的导出功能!

首先需要安装以下依赖:
在这里插入图片描述
以下是本人依赖版本
在这里插入图片描述

html内容

在这里插入图片描述

导出获取el-table的dom元素

exportBtn() {
   
   
	const dom = this.$refs.exportTableRef.$el;//需要导出的dom
	exportDomToXlsx(dom, '...统计分析报表');
},

统一放在工具js文件中util.js

/**
 * 导出成xlsx格式的excel
 * @author JiaBaoYu
 * @date 2022/08/08
 * @param dom 要导出的dom元素
 * @param name 导出文件名称(不含.xlsx)
 */
export function exportDomToXlsx(dom, name) {
   
   
	let table_book;
	let fix = document.querySelector('.el-table__fixed');
	if(fix){
   
    //判断要导出的节点中是否有fixed的表格,如果有,转换excel时先将该dom移除,然后append回去
		table_book = XLSX.utils.table_to_sheet(dom.removeChild(fix));
		dom.appendChild(fix);
	}else{
   
   
		table_book = XLSX.utils.table_to_sheet(dom,{
   
    raw: true });
	}
	addRangeBorder(table_book['!merges'],table_book)//为导出模板的合并表头项添加边框
	//创建一个workbook对象
	let wb = XLSX.utils.book_new()
	//把worksheet对象添加进workbook对象,第三个参数是excel中sheet的名字
	XLSX.utils.book_append_sheet(wb, table_book, name)
	setExlStyle(wb['Sheets'][name]); // 设置列宽 字号等 如果无需多余的样式则省略
	const table_write = xlsxStyle.write(wb, {
   
    type: 'buffer'})
	try {
   
   
		FileSaver.saveAs(
		new Blob([table_write], {
   
    type: 'application/octet-stream' }),
		name + '.xlsx'
		)
	} catch (e) {
   
   
		console.log(e, table_write)
	}
	return table_write;
}



//为合并项添加边框
export function addRangeBorder(range,ws){
   
   
   let cols = ["A", "B", "C", "D", "E", "F", "G", 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值