Vue+Element表格通过前端导出为Excel文件
在做一个带出Excel功能,本来想的是后端导出,但是表格格式比较复杂,涉及到合并现实这些操作 需要跟前端保持一致,所以就在网上找了下前端导出的插件。
以下做个记录
注:此方法能够导出多级表格,默认已安装ElementUI。
1。安装xlsx库
npm install xlsx
2。编写保存函数,文件位置:src/utils/htmlToExcel.js
import XLSX from 'xlsx';
const htmlToExcel = {
getExcel(dom, title = 'temp'){
var excelTitle = title;
var wb = XLSX.utils.table_to_book(document.querySelector(dom));
try {
XLSX.writeFile(wb, excelTitle + '.xlsx');
} catch (e) {
if (typeof console !== 'undefined') {
console.log(e);
alert('导出失败!');
// console.log(e, wbout);
}
}
// return wbout;
},
};
export default htmlToExcel;
3.使用函数,文件位置src/views/TablePage.vue
注:表格导出实现解释,给展示表格添加选择功能,通过handleSelectionChange函数将选中数据与selectData绑定,在选中需要导出数据后点击导出按钮,展示el-dialog并将selectData数据展示在el-dialog中的表格,此表格为最后导出的表格,所以id赋值selectTable,最后确认打印调用exportExcel函数,通过htmlToExcel.getExcel('#selectTable','导出的自定义标题')导出Excel文件。
导出Excel
查看
编辑
因为这个是按照element ui里的表格导出,所以如果要过滤不必要的字段,可以再加一层数据筛选,然后导出筛选过后的表格
参考1:https://juejin.cn/post/6914824008043069448
参考2:https://github.com/rockboom/SheetJS-docs-zh-CN