实现文件导出代码
1.vue中的dom节点 点击事件执行文件导出<el-button display="inline-block" class="filter-item" type="primary" :loading="downloadLoading" icon="el-icon-download"
·
1.vue中的dom节点 点击事件执行文件导出
<el-button display="inline-block" class="filter-item" type="primary" :loading="downloadLoading"
icon="el-icon-download" @click="handleDownload">
导出
</el-button>
2. method中的方法
handleDownload () {
var _this = this
this.form.pageSize = this.pageSize
this.form.pageNum = this.pageNum
lightExport(this.form)
.then(res => {
console.log(typeof(res))
// var blob = res
// var blob = new Blob([res], { type: 'application/x-xls' })
var blob = new Blob([res], { type: 'application/vdn.ms-excel' })
var reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href
// 文件读取成功的回调
reader.onload = function (e) {
//判断是否有导出内容
if (blob.size <= 0) {handleDownload
_this.$message.warning('没有内容导出')
return
}
var a = document.createElement('a')
a.download = 'lightTemplate.xls'
a.href = e.target.result;
// $("body").append(a); // 修复firefox中无法触发click
a.click();
// $(a).remove();
}
// 文件读取失败的回调
reader.onerror = function (e) {
_this.$message.error('文件导出失败')
}
})
.catch(() => {
this.$message.error('导出失败')
})
},
3.request中的方法
export function lightExport(params) {
return request({
url: url + 'wishingOrderRest/orderExportExcel',
method: 'post',
params,
responseType: 'arraybuffer' // 添加相应类型buffer
})
}
更多推荐
已为社区贡献12条内容
所有评论(0)