【vue】vue接收后端文件流并下载为excel格式

使用Blob方法下载文件

Blob 对象表示一个不可变、原始数据的类文件对象。
blob详细解释:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob

请求函数
request封装的请求函数

//导出
export const requestExport = () => {
  return request({
    url: 'xxx',
    method: 'get',
    responseType:"blob",//设置响应数据类型为 blob
  })
}

调用函数并下载excel文件

requestExport().then(response => {
  downLoadFile("导出")
});

downLoadFile函数

/**
 * 下载文件
 * @param fileStream    文件流程
 * @param fileName      文件名
 */
export function downLoadFile(fileStream,fileName="test"){
  let link = document.createElement("a");
  //type就是blob的type,是MIME类型的,可以自己查看MIME类型都有哪些
  let blogw = new Blob([fileStream],{type:"application/vnd.ms-excel;charset=utf-8"})
  let objectUrl = window.URL.createObjectURL(blogw);    //创建一个新的url对象
  link.href = objectUrl;
  let file_name = `${moment().format('YYYY-MM-DD HH:mm:ss')}的${fileName}列表.xlsx`;
  link.download = file_name;    //  下载的时候自定义的文件名
  link.click();
  window.URL.revokeObjectURL(objectUrl);
}

踩坑不易,还希望各位大佬支持一下 \textcolor{gray}{踩坑不易,还希望各位大佬支持一下} 踩坑不易,还希望各位大佬支持一下

📃 个人主页: \textcolor{green}{个人主页:} 个人主页: 沉默小管

📃 个人网站: \textcolor{green}{个人网站:} 个人网站: 沉默小管

📃 个人导航网站: \textcolor{green}{个人导航网站:} 个人导航网站: 沉默小管导航网

🔥 技术交流 Q Q 群: 837051545 \textcolor{green}{技术交流QQ群:837051545} 技术交流QQ群:837051545

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

如果有不懂可以留言,我看到了应该会回复
如有错误,请多多指教

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用Vue.js和Axios库来实现将Excel文件上传给后端程。以下是一个简单的示例: 1. 在Vue组件中,添加一个文件上传的input元素: ```html <template> <div> <input type="file" ref="fileInput" @change="handleFileUpload"> <button @click="uploadFile">上传</button> </div> </template> ``` 2. 在Vue组件的methods中,编写处理文件上传的方法: ```javascript <script> import axios from 'axios'; export default { methods: { handleFileUpload() { this.selectedFile = this.$refs.fileInput.files[0]; }, uploadFile() { const formData = new FormData(); formData.append('file', this.selectedFile); axios.post('/your-backend-api-endpoint', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { console.log(response.data); // 处理后端返回的响应 }) .catch(error => { console.log(error); // 处理上传错误 }); } } } </script> ``` 3. 在后端,使用相应的服务器端框架(如Node.js/Express)来接收文件并处理: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/your-backend-api-endpoint', upload.single('file'), (req, res) => { // 处理上传的文件 const file = req.file; // 执行后续操作,如读取文件内容等 res.send('文件上传功!'); }); app.listen(3000, () => { console.log('服务器已启动!'); }); ``` 这样,当用户选择并上传Excel文件时,前端会将文件发送到后端的指定API接口,后端接收并处理文件,可以根据具体需求进行文件读取、解析等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默小管

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值