1.场景
点击按钮 导出一个excel,我们先来看效果,如图:
2.导出功能的实现
按钮如下
<el-button size="mini" type="text" @click="handlClickExport">
<icon name="daochu" class="icon" scale="2.625"></icon>
<p>导出</p>
</el-button>
点击按钮触发handlClickExport事件,调接口后可以看到后台返回的文件流(看不懂就对了),我们会把它转化为excel的
handlClickExport方法如下:(文件流转excel的实现)
handlClickExport() {
let json = {
ids: yspzUuidArr
}//导出时传的参数
this.$http.post("stamp/taxableVoucher/export", json, {
responseType: 'blob'
})
.then(msg => {
var blob = new Blob([msg.data]);//接受文档流
if ('msSaveOrOpenBlob' in navigator) {//IE下的导出
window.navigator.msSaveOrOpenBlob(blob, '应税凭证信息.xlsx');//设置导出的文件名
} else {//非ie下的导出
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
var filename = "应税凭证信息.xlsx";//设置导出的文件名
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
document.body.removeChild(a);
}
})
.catch(err => {
this.$alert(err, "请求失败", {
confirmButtonText: "确定"
});
});
},