Vue + ElementUI之前端导出Excel表格
表格导出
安装依赖
1 | npm install --save xlsx file-saver |
导入依赖
1 | import FileSaver from "file-saver"; |
给你的el-table一个标识
1 | <el-table |
比如这里给出一个id="saleTable"
,后面我们就使用document.querySelector
来找到该表格下的数据
定义导出方法
1 | <el-button size="mini" @click="handleExportElTable">导出</el-button> |
1 | // 纯前端导出Excel表格 |
效果展示
系统界面
导出界面
自定样式
使用xlsx-style
安装xlsx-style
1 | npm install xlsx-style --save |
修改xlsx-style
源码防止报错
在ruoyi-ui\node_modules\xlsx-style\dist\cpexcel.js
中做出如下修改:
将var cpt = require('./cpt' + 'able');
改为var cpt = cptable;
Vue中的核心代码
1 | // 导入依赖 |
其中,单元格对象的属性如下:
v
:原始值
w
:格式化文本
t
:单元格类型:b
:Boolean,n
:Number,e
:error,s
:String,d
:Date
f
:单元格公式
r
:富文本编码
h
:富文本的HTML
渲染
c
:与单元格关联的注释
z
:与单元格关联的数字格式字符串
l
:单元格超链接对象
s
:单元格的样式/主题
效果
问题记录
导出表格出现重复数据
原因
如果element-ui
的el-table
使用了fixed
属性固定列,导出表格时会出现导出两次的问题,是因为在el-table
中有两个table标签。
解决方案
1 | let table = document.querySelector("#"+tableID).cloneNode(true); |