vue使用file-saver插件保存各种格式文件方式
作者:Mr__proto__
这篇文章主要介绍了vue使用file-saver插件保存各种格式文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
使用file-saver插件保存各种格式文件方式
首先下载插件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`);
}
}vue导出文件(file-saver,vue2,vue3)
安装插件
npm install file-saver --save // 如使用ts,安装file-saver的typeScript类型定义 npm install @types/file-saver --save-dev
导出的格式类型参考
| 文件后缀 | Type |
|---|---|
| application/pdf | |
| .doc | application/msword |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| .xls | application/vnd.ms-excel |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .ppt | application/vnd.ms-powerpoint |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
基本使用
代码如下:
import { saveAs } from 'file-saver'导出(下载文件):
//⚠️注意:需要配置你需要导出的文件类型
const blob = new Blob(['文件内容'],
{ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'})
saveAs(blob,'导出的文件名字')案例
import axios from 'axios'
import { saveAs } from 'file-saver' axios({
method: 'get',
url: url,
responseType: 'blob',
//注入token流,需要添加不需要则无需添加。
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(async (res) => {
const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-
officedocument.wordprocessingml.document' })
saveAs(blob, name)
} else {
console.log('接口报错')
}
})总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
