- vue 下载excel文件方法,以及下载后的乱码问题
- 下载excel的方法
// 下载的方法
downLoadXls(data, fileName) {
const link = document.createElement('a')
let blob = new Blob([data], {type: 'application/vnd.ms-excel'})
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.download = fileName //下载的文件名,默认是 .xls 后缀
//如果想改成 .xlsx 后缀可以这么写:
// link.setAttribute('download', '下载.xlsx') 或者 link.download = fileName + '.xlsx'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
},
downloadTemplate() {
let params = {
fileName: '指标模板.xls'
}
//调用后端接口
downloadTemplate(params).then(res => {
this.downLoadXls(res, '指标模板')
})
},
- 乱码问题的解决
responseType: 'blob', //此属性非常重要,不然数据是乱码
export function downloadTemplate(params) {
return axios({
headers: { 'Content-Type': 'application/json'},
responseType: 'blob', //此属性非常重要,不然数据是乱码
url: 'file/template/downloadTemplate',
method: 'get',
params
})
}