vue是用el-table导出excel表格(解决时间问题和两遍重复数据问题)
1、安装相关依赖npm install --save xlsx file-saver2、组件里头引入import FileSaver from 'file-saver'import XLSX from 'xlsx'3、导出方法exportExcel (id, title) {/* generate workbook object from table */// 判断要导出的节点中是否有fixed的
·
1、 安装相关依赖
npm install --save xlsx file-saver
2、组件里头引入
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
3、 导出方法(解决时间问题和两遍重复数据问题)
exportExcel (id) {
var reportTitle = Date.parse(new Date())+'.xlsx'
/* generate workbook object from table */
// 判断要导出的节点中是否有fixed的表格,如果有,转换excel时先将该dom移除,然后append回去,
var fix = document.querySelector('.el-table__fixed-right');
var wb;
var xlsxParam = { raw: true };//转换成excel时,使用原始的格式
if (fix) {
wb = XLSX.utils.table_to_book(document.querySelector(id).removeChild(fix),xlsxParam);
document.querySelector(id).appendChild(fix);
} else {
wb = XLSX.utils.table_to_book(document.querySelector(id),xlsxParam);
}
/* get binary string as output */
var wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: true,
type: 'array'
});
try {
FileSaver.saveAs(
new Blob([wbout], {
type: 'application/octet-stream'
}),
reportTitle
);
} catch (e) {
if (typeof console !== 'undefined') console.log(e, wbout);
}
return wbout;
},
更多推荐
已为社区贡献71条内容
所有评论(0)