// 导出excel
export function handleDown() {
return request({
url: 'api/exportUnit',
method: 'get',
// responseType: 'blob'
responseType: 'arraybuffer'
}).then((response) => { // 处理返回的文件流
const blob = new Blob([response.data], { type: 'application/vnd.ms-excel;charset=UTF-8' })
const filename = decodeURI(response.headers['content-disposition'].split(';')[1].split('=')[1])
// if (typeof window.navigator.msSaveBlob !== 'undefined') {
// window.navigator.msSaveBlob(blob, filename)
// }
if ('msSaveOrOpenBlob' in navigator) { // IE导出
window.navigator.msSaveOrOpenBlob(blob, filename)
} else {
// console.log("filename==== " + fileName);
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = filename + '.xls'
document.body.appendChild(link)
link.click()
window.setTimeout(function() {
URL.revokeObjectURL(blob)
document.body.removeChild(link)
}, 0)
}
})
}
vue代码如下
<div style="display: inline-block;margin: 0px 2px;">
<el-button class="filter-item" type="success" size="mini" @click="exportData">
<i class="fa fa-lg fa-level-down" style="margin-right: 5px"/>导出数据
</el-button>
</div>
js:
import { handleDown, handleTemplateDown } from '@/api/XX/XXXX'
exportData() {
handleDown()
}