下载插件file-saver
npm install file-saver
import FileSaver from "file-saver";
export default class fileSave {
/**
* 导出Excel文件
* @param {*} res 文件流
* @param {*} name 文件名
*/
static getExcel(res, name) {
console.log(res, name)
let blob = new Blob([res], {
type: "application/vnd.ms-excel"
});
FileSaver.saveAs(blob, name + ".xlsx");
}
/**
* 导出CSV文件
* @param {*} res 文件流
* @param {*} name 文件名
*/
static getCsv(res, name) {
let blob = new Blob([res], {
type: "application/vnd.ms-excel"
});
FileSaver.saveAs(blob, name + ".csv");
}
/**
* 导出图片1
* @param {*} url 图片地址
* @param {*} name 文件名
*/
static getImgURLs(url, name) {
let last = url.substring(url.lastIndexOf("."), url.length);
FileSaver.saveAs(url, `${name}${last}`);
}
/**
* 导出图片2
* @param {*} res 文件流
* @param {*} name 文件名
*/
static downLoadImg(res, filename) {
let blob = new Blob([res], {
type: "image/jpeg"
});
FileSaver.saveAs(blob, `${filename}.jpg`);
}
}
更多文件类型参考
使用:
1.导入
import exportFile from '@/utils/exportFile'
2.使用
exportFile.getExcel(res.data, '近年走势')
a标签点击实现
<template>
<div class="">
<el-button
size="small"
@click="downloadFile"
>保存文件</el-button>
</div>
</template>
<script>
export default {
methods: {
downloadFile() {
var blob = new Blob([res.data'], {
type: 'text/plain;charset=utf-8',//txt文件
// type: 'application/vnd.ms-excel' excel文件
});
// 存在浏览器兼容性
let href = URL.createObjectURL(blob);
let alink = document.createElement('a');
alink.style.display = 'none';
alink.download = '文件名.txt'; //下载后文件名
alink.href = href;
document.body.appendChild(alink);
alink.click();
document.body.removeChild(alink); //下载完成移除元素
URL.revokeObjectURL(href); //释放掉blob对象
},
},
};
</script>
<style lang="scss" scoped>
</style>