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('接口报错') } })
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。