将el-table表格中的数据导出为Excel文件

安装依赖模板
npm i —S xlsx file-saver
在放置需要导出功能的组件中引入模块
import FileSaver from 'file-saver'
import XLSX from 'xlsx'

若打印XLSX,输出为undefined,导入失败(xlsx版本不同);就在method中使用 require()导入

const XLSX = require('xlsx')

给需要导出的el-table表格组件上加一个id;
如exportTable,对应下面的exportToExcel方法中的 document.querySelector(’#exportTable’)获取到该el-table的dom节点

导出方法

method中写导出事件 exportToExcel()

// 表格数据写入excel,并导出为Excel文件
exportToExcel(){
  const XLSX = require('xlsx')
  console.log('XLSX',XLSX,FileSaver)
  // 使用 this.$nextTick 是在dom元素都渲染完成之后再执行
  this.$nextTick(function () {
	// 设置导出的内容是否只做解析,不进行格式转换     false:要解析, true:不解析
	const xlsxParam = { raw: true } 
	const wb = XLSX.utils.table_to_book(document.querySelector('#oIncomTable'), xlsxParam)
	// 导出excel文件名
	let fileName = '营业收入' + new Date().getTime() + '.xlsx'
	
	const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
	try {
	  // 下载保存文件
	  FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), fileName)
	} catch (e) {
	  if (typeof console !== 'undefined') {
		console.log(e, wbout)
	  }
	}
	return wbout
  })
},

调用

<el-button type="primary" @click="exportToExcel"> 导出 </el-button>

导出成功:
在这里插入图片描述
打开:
在这里插入图片描述

若表格分页生成的时候只能生成当前页的excel,在执行 exportToExcel() 方法的时候,先把表格的页码改为最大

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐