前端vue对接后端导出excel文件的原理和教程

2023-11-17

前言:前面我们讲过了前端怎么读取excel文件里面的内容数据问题,这边讲解前端怎么对接后端接口并导出excel文件,功能简单易实现。

1.导出excel文件的原理:

后端通过接口把文件流的数据返回给前端,前端再模拟一个下载的动作,进行文件数据的转换并且下载到本地。是不是很简单哈哈哈哈哈哈哈!!!!但是这里我们需要着重讨论的是,我们需要通过blob的数据格式(javaScript对象),利用createObjectURL方法,将blob对象创建成blob URL,然后模拟点击下载。

        我们先介绍一下Blob对象(这里是javaScript官网) Blob对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。(官网原文)这一对象能让我们更好的操作二进制数据而更多的属性和方法介绍点我给你们的地址.........

导出excel文件功能代码如下:

// 下载
download() {
  // 调用下载模板函数(传递文件名和地址)
  this.downloadTemplate('文件名', '/sys/exportBuyCarCouponInfoExcel')
},
// 下载模板
downloadTemplate(templateName, subURL) {
  // element-ui的loading
  const loading = this.$loading({ target: '.loading-area' })
  // axios请求
  axios({
    method: 'post',
    url: process.env.VUE_APP_BASE_API + subURL,
    data: {
      // 携带的参数
      data: ''
    },
    responseType: 'arraybuffer'
  }).then(res => {
    // 打印接口数据
    console.log(res)
    // 请求结束关闭loading
    loading.close()
    // 创建a标签
    const elink = document.createElement('a')
    构建Blob对象
    const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
    // 模拟下载
    const objectUrl = URL.createObjectURL(blob)
    elink.setAttribute('href', objectUrl)
    elink.setAttribute('download', templateName + '.xls')
    elink.click()
    document.body.removeChild(elink)
  })
}

导出excel文件是很简单的一个功能,这里的实现用不到几行代码,大家可以自己去试试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端vue对接后端导出excel文件的原理和教程 的相关文章

随机推荐

  • 税务大比武网络攻防复习(完整版)

    目录 信息化建设与管理 计算机终端设备 通信与网络 数据管理与应用 软件开发 计算与存储 基础设施保障 网络安全 网络安全基础 网络安全管理 密码学 软件开发安全 主机 数据库 中间件安全 网络与通信安全 网络攻击 信息收集 口令攻击和软件
  • uniapp小程序练手项目并上线

    如题 做一个自己的小程序 并在各大小程序开发者平台上线 背景 因没有小程序开发经验 且前端知识掌握得不好 作为一个小程序爱好者 总想有一款自己的小程序 同时也想有一款自己的app 虽然目前还没有实现 在整体难度上来说 小程序的实现比app的
  • 对数器的使用----bug测试,文章中含有测试源码

    当我们选择排序没有出现问题时 我们可以发现一个随机数组是有序的 会打印出 选择排序没有毛病 说明此时选择排序没有毛病 package cn Text public class LogarithmicDetector TODO 选择排序 pu
  • 2023省赛 飞机降落(dfs)

    看数据量 fact 10 3628800 直接暴力dfs include
  • firefly 搭建

    基本内容在http blog csdn net wangqiuyun article details 11150503里都有 在此仅记录搭建工程中遇到的问题及实际项目添加的工具 mysql安装 最好用5 6 服务启动不成功 基本是配置的问题
  • vue插件开发以及发布到npm流程——消息提示插件

    最近有兴趣学习了一下vue插件开发 以及发布到npm上 项目里可以直接使用自己开发的插件 以下文章以开发一个消息提示的组件为例 记录一下开发的流程 一 vue项目创建配置 创建vue项目的指令不多说 直接以下指令 这里我选择的vue2进行开
  • 校园二手物品交易系统微信小程序设计

    系统简介 本网最大的特点就功能全面 结构简单 角色功能明确 其不同角色实现以下基本功能 服务端 后台首页 可以直接跳转到后台首页 用户信息管理 管理所有申请通过的用户 商品信息管理 管理校园二手物品中所有的商品信息 非常详细 违规投诉管理
  • c语言源码解释,C语言一些细节注意(源码+解释)

    最近可能要回归底层开发设计 所以又看了看C的一些东西 顺便对一些问题进行了代码确认 现将代码贴出 希望对各位网友有所帮助 只是为了测试 没有按照什么规范写 代码风格比较烂 哈哈哈哈 大家见谅了 O
  • org.apache.hadoop.hbase.client.RetriesExhaustedException: Can't get the locations

    Hbase API操作表时报出异常 Exception in thread main org apache hadoop hbase client RetriesExhaustedException Can t get the locati
  • C++11新特性总结

    目录 一 统一的列表初始化 适用于各种STL容器 二 类型推导 auto 和 decltype的出现 三 右值引用移动语义 特别重要的新特性 四 万能引用 完美转发 五 可变参数模板 参数包 六 emplace back 的出现和对比分析
  • 判断apk是否签名以及获取apk信息

    一 判断apk是否签名 如果集合apkSingers 为空 说明没有签名人 未签名 try ApkFile apkParser new ApkFile new File C Users kesun5 Desktop doc b apk Ap
  • 安装Node.js和cnpm

    一 安装Node js 1 下载 Node js官网下载 根据自身系统下载对应的安装包 我这里为Windows10 64位 故选择下载第一个安装包 2 然后点击安装 选择自己要安装的路径 此处我选择的是 D Program Files no
  • 容器适配器【stack、queue、priority_queue和反向迭代器】

    全文目录 适配器原理 stack 和 queue deque 模拟实现stack 模拟实现queue 模拟实现priority queue 反向迭代器 适配器原理 适配器 适配器是一种设计模式 设计模式是一套被反复使用的 多数人知晓的 经过
  • 如何延长周末体验感?工作与休息的完美平衡

    引言 对于工作繁忙的人们 周末是一段宝贵的时间 是放松身心 恢复精力的机会 然而 很多人常常发现 即使是在周末 也无法获得高质量的休息 本文将分享一些关于如何延长周末体验感 提升休息质量的方法 从时间规划 体验感提升以及充分休息几个方向进行
  • 如何借助 AI ,生成专属图标? #iconify AI

    不到一分钟 就可生成个性化专属图标 这款 AI 图标工具有多神奇 iconify AI 在几秒钟内为应用程序 网站创建专业图标 告别传统应用图标设计的麻烦和费用 让 AI 设计用户的专属品牌图标 图源 iconify AI 如何用 icon
  • 什么是防抖,节流? js实现核心代码,以及应用场景?

    防抖和节流都是用于项目优化的手段 用来限制事件的触发频率的两种常见技术 什么是防抖 在事件被触发后 等待一段时间 如果在这段时间内没有再次触发该事件 则执行相应的操作 如果在定时等待期间又触发的该事件 则重新计时 主要用于处理频繁触发的事件
  • GWO灰狼优化算法以及Matlab代码

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 GWO灰狼算法原理 进化更新 位置更新 紧随3只头狼 GWO灰狼算法流程图 GWO优化算法matlab代码 main函数 适应度函数 GWO主体代码 测试结果F1
  • 【Java小疑问】类和方法 前面添加public和不添加public的区别

    讨论前提 包的存在 Java 中修饰类修饰符 public default 默认 1 public 该类可在同一或不同包下访问 父包 子包皆可访问 2 default 该类仅可在同一个包下可访问 父包 子包皆无法访问 注意 在 Java 中
  • Linux下 (Ubuntu16.04 ) Tesseract4.0训练字库,提高正确识别率Linux下(合并字库)

    由于tesseract的中文语言包 chi sim 对中文手写字体或者环境比较复杂的图片 识别正确率不高 因此需要针对特定情况用自己的样本进行训练 提高识别率 通过训练 也可以形成自己的语言库 Linux和windows的系统方法一样 就是
  • 前端vue对接后端导出excel文件的原理和教程

    前言 前面我们讲过了前端怎么读取excel文件里面的内容数据问题 这边讲解前端怎么对接后端接口并导出excel文件 功能简单易实现 1 导出excel文件的原理 后端通过接口把文件流的数据返回给前端 前端再模拟一个下载的动作 进行文件数据的