vue3+element表格调用后台接口实现Excel导出功能以及导出乱码问题解决

简介: vue3+element表格调用后台接口实现Excel导出功能以及导出乱码问题解决

实现效果

导出后的效果:

步骤

第一步:安装依赖

npm install --save xlsx file-saver

第二步:引入依赖

// 引入导出Excel表格依赖
import * as FileSaver from "file-saver";
import * as XLSX from "xlsx";

第三步:导出

// 导出事件
const exportClick = () => {
  axios({
    method: 'post',
    url: '/pcapi/Redeem/derive',
    data: qs.stringify({}),
  })
    .then((res) => {
      console.log(res.data)
      const data = new Blob([res.data], {
        type: 'application/vnd.ms-excel;charset=utf-8',
      })
      const downloadUrl = window.URL.createObjectURL(data)
      const anchor = document.createElement('a')
      anchor.href = downloadUrl
      anchor.download = '表格名称.xlsx' // 表格名称.文件类型
      anchor.click()
      window.URL.revokeObjectURL(res.data) // 消除请求接口返回的list数据
    })
    .catch((err) => {
      console.log(err)
    })
}

   接口返回数据导出,通常需要请求后端接口获取数据,接口返回的数据基本上是乱码的,需要先处理乱码的数据,否则导出来的文件是损坏的,如下

       看到这种返回信息,表格数据基本上是已经拿到了,现在只需要做一下数据的处理即可导出表格。

解决方法步骤拆解:解码

在请求接口的位置添加 { responseType: 'blob' } 将信息转码

  axios({
    method: 'post',
    url: '/pcapi/Redeem/derive',
    data: qs.stringify({}),
    responseType: 'blob', // 添加 blob 解决乱码问题,或者 arraybuffer
  })
    .then((res) => {
    })
    .catch((err) => {
    })
相关文章
|
19天前
|
JavaScript 前端开发 索引
「Vue3系列」Vue3 条件语句/循环语句
在 Vue 3 中,你可以使用条件语句来动态地控制模板中的渲染内容。Vue 提供了多种方式来实现条件渲染,包括 `v-if`、`v-else-if`、`v-else` 和 `v-show` 指令。
33 0
|
16天前
|
JavaScript 前端开发 数据安全/隐私保护
Vue3——如何实现页面访问拦截
Vue3——如何实现页面访问拦截
|
1天前
|
JSON 数据可视化 前端开发
vue3+threejs+koa可视化项目——模型文件上传(第四步)
vue3+threejs+koa可视化项目——模型文件上传(第四步)
15 7
|
1天前
|
JSON 数据可视化 数据库
vue3+threejs+koa可视化项目——实现登录注册(第三步)
vue3+threejs+koa可视化项目——实现登录注册(第三步)
18 5
|
1天前
|
JavaScript 数据可视化 算法
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
16 6
|
2天前
|
JavaScript 前端开发 BI
原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)
原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)
7 1
|
4天前
|
资源调度 JavaScript 开发者
插件使用:扩展Vue功能与第三方插件
【4月更文挑战第23天】Vue凭借其轻量级和灵活性在Web开发中备受青睐,而插件则进一步增强了其功能。本文探讨了如何在Vue项目中选择、安装、配置和管理插件,以适应不同需求。要点包括:选择可靠且兼容的插件,使用npm或yarn安装,根据文档配置,以及注意性能影响。明智使用插件能提升开发效率,但需避免过度依赖,确保与项目目标和技术栈匹配。不断学习新插件,可保持技术领先并优化项目实践。
|
10天前
|
JavaScript 算法 前端开发
vue3和vue2的区别都有哪些
【4月更文挑战第15天】Vue3与Vue2在响应式系统(Proxy vs. Object.defineProperty)、组件模块化(Composition API vs. Options API)、数据变化检测(Reactive API vs. $watch)、虚拟DOM算法(基于迭代 vs. 基于递归)及Tree-Shaking支持上存在显著差异。Vue3的改进带来了更好的性能和灵活性,适合追求新技术的项目。Vue2则因其成熟稳定,适合维护大型项目。选择版本需根据项目需求、团队情况和技术追求来决定。
13 0
|
11天前
|
JavaScript
vue3+vite项目配置ESlint
vue3+vite项目配置ESlint
12 0
|
11天前
乾坤子应用配置(vue3+vite)
乾坤子应用配置(vue3+vite)
17 0