我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue中如何下载excel流文件及设置下载文件名

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue中如何下载excel流文件及设置下载文件名

概述

导出excel需求,当点击下载模板或下载反馈结果,axios发起后端接口请求,返回的数据获取 response 时出现乱码,如图:

现总结如下几种处理方法。

1、通过 url 下载

即后端提供文件的地址,直接使用浏览器去下载

通过window.location.href = 文件路径下载


window.location.href = `${location.origin}/operation/ruleImport/template`

通过 window.open(url, '_blank')


window.open(`${location.origin}/operation/ruleImport/template`)

这两种使用方法的不同:

  • window.location:当前页跳转,也就是重新定位当前页;只能在网站中打开本网站的网页。
  • window.open:在新窗口中打开链接;可以在网站上打开另外一个网站的地址。

2、通过 a 标签 download 属性结合 blob 构造函数下载

a 标签的 download 属性是 HTML5 标准新增的,作用是触发浏览器的下载操作而不是导航到下载的 url,这个属性可以设置下载时使用新的文件名称。

前端创建超链接,接收后端的文件流:


axios.get(`/operation/ruleImport/template`, {
        responseType: "blob" //服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream',默认是'json'
    })
    .then(res => 
        if(!res) return
        const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) // 构造一个blob对象来处理数据,并设置文件类型
        
        if (window.navigator.msSaveOrOpenBlob) { //兼容IE10
            navigator.msSaveBlob(blob, this.filename)
        } else {
            const href = URL.createObjectURL(blob) //创建新的URL表示指定的blob对象
            const a = document.createElement('a') //创建a标签
            a.style.display = 'none'
            a.href = href // 指定下载链接
            a.download = this.filename //指定下载文件名
            a.click() //触发下载
            URL.revokeObjectURL(a.href) //释放URL对象
        }
        // 这里也可以不创建a链接,直接window.open(href)也能下载
    })
    .catch(err => {
        console.log(err)
    })

注:请求后台接口时要在请求头上加{responseType: 'blob'};download 设置文件名时,可以直接设置扩展名,如果没有设置浏览器将自动检测正确的文件扩展名并添加到文件。

3、通过 js-file-download 插件

安装:


npm install js-file-download --S

使用


import fileDownload from 'js-file-download'

axios.get(`/operation/ruleImport/template`, {
        responseType: 'blob' //返回的数据类型
    })
    .then(res => {
        fileDownload(res.data, this.fileName)
    })

以上就是vue中如何下载excel流文件及设置下载文件名的详细内容,更多关于vue中下载excel流文件及设置下载文件名的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue中如何下载excel流文件及设置下载文件名

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue中怎么下载excel流文件及设置下载文件名

这篇文章给大家分享的是有关vue中怎么下载excel流文件及设置下载文件名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述导出excel需求,当点击下载模板或下载反馈结果,axios发起后端接口请求,返回的数据
2023-06-15

java文件下载如何设置中文名称

这篇文章主要为大家展示了“java文件下载如何设置中文名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java文件下载如何设置中文名称”这篇文章吧。实例如下:protected void do
2023-05-30

vue下载文件以及文件重命名方式

这篇文章主要介绍了vue下载文件以及文件重命名方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

excel下载后文件名称不对

正确写法 String headerValue = String.format("attachment; filename=\"%s\";", fileName+ "_" + dateStr + ".xlsx");// 这样就可以了
2023-08-30

js如何实现文件流式下载文件

在JavaScript中,可以使用Blob对象和URL.createObjectURL()方法来实现文件的流式下载。具体步骤如下:1. 将文件内容存储在Blob对象中。Blob对象表示一个不可变、原始数据的类文件对象。2. 使用URL.cr
2023-08-09

java文件下载中文文件名乱码

JAVA文件下载时中文文件名乱码有两种情况:1、下载时中文文件名乱码;2、下载时因为路径中包含中文文件名乱码,提示找不到文件。相关视频教程分享:java视频教程解决方法如下:response.setContentType("multipart/form-dat
java文件下载中文文件名乱码
2021-10-07

java下载文件中文文件名乱码

问题引出:上传中文命名的图片,下载显示不了中文名称。如图:(相关视频教程推荐:java视频教程)解决方法:1、sping-mvc.xml部分代码:2、FileController.java中文文件名获取代码:获取浏览器格式,根据不同浏览器控制文件名编码格式。S
java下载文件中文文件名乱码
2014-05-25

vue下载文件及文件重命名的方法是什么

这篇文章主要介绍“vue下载文件及文件重命名的方法是什么”,在日常操作中,相信很多人在vue下载文件及文件重命名的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue下载文件及文件重命名的方法是什么
2023-07-04

一文详解js如何用文件流下载csv文件

本篇文章给大家带来了关于js+csv的相关知识,其中主要介绍了什么是Blob对象,怎么理解它以及如何使用文件流实现下载csv文件,感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。
2023-05-14

jquery 如何下载文件

本篇文章介绍了如何使用jQuery下载文件的方法,包括$.ajax()和$.get()方法。这些方法允许您从指定的URL下载文件,并提供了对下载文件内容的控制。通过示例代码和高级选项,您可以灵活地处理文件下载过程,包括直接显示文件、保存文件或解析文件内容。
jquery 如何下载文件
2024-04-02

VBS如何下载文件

这篇文章给大家分享的是有关VBS如何下载文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。BLOG备份脚本时发现 CDO.MESSAGE可以访问网络下载东西,说是研究研究或许可以用来当下载者用。 于是研究了一会。
2023-06-08

js中怎么用文件流下载csv文件

这篇文章主要讲解了“js中怎么用文件流下载csv文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js中怎么用文件流下载csv文件”吧!js使用文件流下载csv文件的实现方法理解 Blob
2023-07-05

php文件下载文件名乱码如何解决

本篇内容主要讲解“php文件下载文件名乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php文件下载文件名乱码如何解决”吧!php文件下载文件名乱码的解决办法:1、把“Content-
2023-07-04

编程热搜

目录