项目中有一个导出功能的实现,用博客来记录一下。因为需求对导出表格的数据格式和样式有要求,所以这个导出功能放到后端来做,而且后端返回的是数据流,所以需要处理成想要的表格并导出来。

先看下效果图:

页面效果:

点击 导出Excel 调用导出接口成功了:

后台返回的数据流,一堆看不懂的乱码:

接下来要处理这堆乱码,因为用到的地方多,所以在util.js文件里封装了一个公共方法并抛出

虽然vue里有封装好的请求接口的方法,但这里要单独用axios,所以先在util.js里引入axios

import axios from 'axios'
// 导出Excel公用方法
export function exportMethod(data) {axios({method: data.method,url: `${data.url}${data.params ? '?' + data.params : ''}`,responseType: 'blob'}).then((res) => {const link = document.createElement('a')let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})link.style.display = 'none'link.href = URL.createObjectURL(blob)// link.download = res.headers['content-disposition'] //下载后文件名link.download = data.fileName //下载的文件名document.body.appendChild(link)link.click()document.body.removeChild(link)}).catch(error => {this.$Notice.error({title: '错误',desc: '网络连接错误'})console.log(error)})
}

在使用的页面中引入方法:

import { exportMethod } from '@/libs/util'

在methods导出的方法里,调用共用导出方法

注意:因为我们后台用的是get方法,所以传递get请求并且拼接要传的参数,如果是post请求,就把传递的get改成post,传递数据改成传data数据对象,params去掉,公共方法里把url上拼接的参数也去掉,直接 接收url路径即可,再接收一个data就行了

// 导出会诊接诊量统计表exportDepReceRank() {let myObj = {method: 'get',url: exportDepartmentRankUrl,fileName: 'XX医院—各科室会诊接诊量统计',params: `startDate=${changeDate(this.dateValue[0])}&endDate=${changeDate(this.dateValue[1])}`}exportMethod(myObj)},

最后成功导出Excel的效果图:

vue中后端做Excel导出功能返回数据流前端如何做处理相关推荐

  1. spring boot + vue 使用poi实现Excel导出功能(包括Excel样式调整,以及前后端代码)

    可以直接复制拿来用哟.(#^.^#) 目录 一.pom.xml依赖 二.代码大致流程是这样的 三.后端工具类 四.基于vue,使用axios调用后端接口,实现下载文件的方法 五.看效果 一.pom.x ...

  2. vue导出excel加一个进度条_vue 实现excel导出功能

    最近Vue项目中用到了导出功能,在网上搜索了一番之后,决定采用Blob方式,这也是大家推荐的一种的方式,特此做下记录. 导出Excel功能 我是使用vue-cli3.0的框架,所以在安装过程中没有遇到 ...

  3. 解决通过调用后台接口实现Excel导出功能,后台返回数据乱码的问题

    解决通过调用后台接口实现Excel导出功能,后台返回数据乱码的问题 问题如下: 这导致我虽然成功导出文件,但文件受损打不开 解决方案如下: 在调用接口加入: // 导出 export function ...

  4. vue中后端返回图片流,前端渲染方法

    vue中后端返回图片流,前端渲染方法 前端登录经常用到图形验证码,后端接口返回的是图片数据流,如下图返回图片流这样 效果图如下: 首先封装接口api和uuid[就是一个随机数,防止重复] //获取图形 ...

  5. 基于easyexcel的MySQL百万级别数据的excel导出功能

    前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...

  6. Vue中实现自定义excel下载

    最近在工作中遇到一个需求,就是需要在前端实现一个错误模板Excel的下载功能. 实现下载有两种方式,一种是后端生成一个excel,放在服务器指定目录下,然后前端直接去后端拿.第二种是后端传给前端一个j ...

  7. 如何在 Asp.Net Core 实现 Excel 导出功能

    在web应用程序开发时,或许你会遇到这样的需求,如何在 Asp.Net Core 中实现 excel 或者 word 的导入导出,在 NuGet 上有大量的工具包可以实现这样的功能,本篇就讨论下如何使 ...

  8. 根据children动态复杂表头excel导出_Java高级特性-注解:注解实现Excel导出功能

    注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟是框架的事,我们也能用好注解吗? 的确,我们很少有机会自己写注 ...

  9. java数据导出ex_Java高级特性注解:注解实现Excel导出功能

    作者:JerryWu来源:SegmentFault 思否社区 注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟 ...

最新文章

  1. 我们为你精选了一份Jupyter/IPython笔记本集合 !(附大量资源链接)-下篇
  2. Windows XP中的用户分为3类。
  3. Strategic Game
  4. VTK:PolyData之TriangleArea
  5. redis的学习使用,第四章
  6. 前端学习(3197):jsx语法规则1
  7. 逼自己玩命学了3个多月,吃透了Python技术核心!分享给你
  8. [WORK]局数据系统
  9. 2020-11-30 OpenCV人工智能图像处理学习笔记 第3章 计算机视觉加强之几何变换 warpAffine
  10. ZXing拍码后区分扫描到的是一维码、二维码、其他码,android音视频面试
  11. 收藏:产品经理和技术经理等的OKR模板大全
  12. 连上wifi浏览器不能上网微信却可以登陆
  13. buu-[QCTF2018]Xman-babymips
  14. 十代服务器芯片组,Intel自曝400、495系列芯片组:搭档十代酷睿
  15. ubuntu22.04安装搜狗输入法不出中文
  16. iSlide(PPT插件)
  17. Android 透明度数值对应表
  18. Flood Fill
  19. 20194711 阚宇航 第一次软工作业
  20. 在两个高程点之间如何生成加密点_等高线加密高程点

热门文章

  1. 会员卡券领取 小程序_微信小程序会员卡开发跳坑
  2. Kubernetes生态,从繁荣走向碎片化
  3. TensorFlow installation not found - running with reduced feature set.
  4. kubeadm搭建k8s集群实践
  5. LinkedIn TAG
  6. Python断点调试方法
  7. Java中键盘输入一个数组的具体操作及说明
  8. 几个简单有趣的shell脚本
  9. IAT hook D3D透视源码 过检测的写法
  10. 中南海保镖--李连杰 主演