需求:后台管理系统的某个表格需要导入导出

本文基于vue和antdesign

  1. 表格导入:

首先需要先下载导入模版,如果导入的表格和项目中的表格不对应的话,将此传给后端之后,后端识别不出来。

下载导入模版就是直接向后端发送请求,请求时将数据转换为blob流(关键的一步)

上面的部分代码:

let url = window.URL.createObjectURL(new Blob([res.data], { type: '.xlsx' }));let a = document.createElement('a');a.style.display = 'none';a.href = url;a.setAttribute('download', ``);document.body.appendChild(a);a.click();url = window.URL.revokeObjectURL(url);document.body.removeChild(a)this.$message.success('下载成功', 3)
1.2、导入模版下载完成后,将此文件导入项目表格中

antd的组件库中有个a-upload上传组件,其中注意点是action,这个props的值应该为 action="请求的基准路径(axios.defaults.baseURL + 导入接口)",如果是动态的,需要在action前面加上冒号。

html:
<a-upload name="file" :action="actionURL+''" @change="handleChange":showUploadList="false" method="post" :data="file.file" :headers="headers"><a>导入</a></a-upload>
js:handleChange(info) { // 导入this.file['file'] = info.file.nameif (info.file.status !== 'uploading') {//   console.log(info.file, info.fileList);}if (info.file.status === 'done') {this.$message.success('导入成功', 3)} else if (info.file.status === 'error') {this.$message.error('文件导入失败', 3);this.isImportExcel = false}},
1.3、文件导入还可以不使用组件,像平常一样调取接口即可(1.2和1.3任选)
  importExcel(info) {let input = document.createElement("input");input.type = "file";input.onchange = this.handleUpload;input.click();},handleUpload(event) {let file = event.target.files[0];POST_IMPORT_FILE(file).then((res) => {console.log(res)if (res.data.code === 0) {this.$message.success('导入成功', 3);this.pagination.current = 1this.getList();} else {this.$message.error('导入失败', 3);}});},//  axios请求封装
export const POST_IMPORT_FILE = (data) => {let formData=new FormData()formData.append('file',data);formData.append('type',0);return axios.post(`接口`, formData, {headers: {'Content-Type': 'multipart/form-data'}});
}

2、表格导出

html:<a-button type="primary" style="margin-left:20px"loading>导出</a-button>
js:async exportExcel() { // 导出axios({method: '',url: '/',params: {},responseType: "blob"}).then((res) => {let url = window.URL.createObjectURL(new Blob([res.data], { type: '.xlsx' }));let a = document.createElement('a');a.style.display = 'none';a.href = url;a.setAttribute('download', `维护.xlsx`);document.body.appendChild(a);a.click();url = window.URL.revokeObjectURL(url);document.body.removeChild(a)this.$message.success('导出成功', 3)}).catch(error => {this.$message.error('导出失败', 3)});}}

至此,导入导出结束,上述代码可以粘贴复制,请求内容自己更改一下即可。

总结:

分析需求,找到解决办法,逐步完善!如有不到,请提出,以免误导他人,感谢!

antd of vue的excel表格导入导出相关推荐

  1. Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)

    Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装) 对于excel Java POI 使用 目前简单导出导入功能网上很多,但是对于有下拉选,样式等缺点却是最大硬伤,故此封装一个通 ...

  2. 关于EXCEL表格导入\导出数据…

    good! 原文地址:关于EXCEL表格导入导出数据库的代码 作者:海豚湾孬蛋 导入/导出Excel       --从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:     ...

  3. Excel表格导入导出功能实现

    ## 01.员工管理-Excel导入功能介绍 ### 目标 在前面员工的添加是一个一个进行的,如果一次性添加多个员工信息,这时候就会很繁琐 因此需要我们开发一个批量导入的功能,将用户的信息存储到 ex ...

  4. 纯前端实现excel表格导入导出

    前言 github: https://github.com/stardew516... 以往做excel表格下载功能的时候,都是后端生成好表格后,存储在某个地方,然后给前端一个链接,前端使用a标签加d ...

  5. vue 中 Excel 的导入导出

    一.Excel 导入 1. 初始导入 vue-element-admin 的源代码仓库已经提供了组件源码,通过修改template和style来进行样式更改.组件地址 Excel 导入组件(Uploa ...

  6. Android数据转化为Excel表格导入导出

    最近需要用到把Android数据到处保存到Excel表格中,个人感觉也比较实用,所以就和大家分享一下.以前没接触过该怎么办呢?有问题找百度,只有你想不到的没有你找不到的.在网上也找到了一些例子,自己又 ...

  7. 前端vue Excel表格导入导出功能(纯前端)

    目录 第一步.安装插件 第二步.导入Blob.js和Export2Excel.js,在/src/assets下新建文件 第三步.导入文件 第四步.导出文件 第一步.安装插件 yarn add file ...

  8. vue实现Excel文件导入导出

    <template><div class="index" v-loading.fullscreen.lock="fullscreenLoading&qu ...

  9. 清华大学赵志磊--基于thinkPHP6框架的Excel表格导入和导出

    1.Excel表格导出 先上大图:(可放大查看,当作壁纸再好不过,超高清壁纸) 正题: 首先.thinkPHP6框架内在admin应用下,自定义文件夹,存放公共类,里面封装公共方法. 命名空间写好,记 ...

最新文章

  1. Integer to Roman 问题
  2. 绑定dictionary 给定关键字不再字典中_VBA代码集锦-利用字典做两列数据的对比并对齐...
  3. 移植wpa_supplicant 2.2问题
  4. Android打包编译shrinkResources true报错解决方案
  5. java堆和客栈_JAVA中堆、栈,静态方法和非静态方法的速度问题
  6. android各版本市场占有率报告,你用的是哪个版本 Android系统报告:果冻豆市占率升至62%...
  7. SQL Server报表生成器中的R脚本词云
  8. c3p0,dbcp与druid 三大连接池的区别[转]
  9. vue的第一份正式源码
  10. delphi代码在linux编译运行,[教程] Delphi 10.2 Linux 程序开发环境部署的基本步骤
  11. 视频压缩软件如何下载
  12. 2021年软考网络工程师专题突破视频教程
  13. mysql分别统计男性员工和女性员工人数_实验四 数据查询3-group by等
  14. 裤子尺码对照表eur40_裤子尺寸对照表,衣服尺寸对照表,服装尺寸对照表- 尺码对照表...
  15. PhotoShop 保存 8 bit 位图(Bmp)的方法【记录备忘】
  16. 批改网作文提交时分析不出来_人物专访 I 苗晋:我的生活都为“批改作文”而让路...
  17. 关于自己看百度修改c盘下的用户名,更改了注册表里的profilelist文件,重启后恢复原始桌面并提示注销问题与解决方案。
  18. IOC在墨者革离中的理解
  19. python 福利吧_段友福利:Python爬取段友之家贴吧图片和小视频
  20. java utill scanner_java.util.Scanner应用详解 转

热门文章

  1. 全球与中国LFP阴极粉末市场深度研究分析报告
  2. 诺基亚收购Trolltech刺痛对手
  3. 数据库性能需求分析及评估模型
  4. 修改权限644是什么意思
  5. 如何引入JavaScript脚本?
  6. Android驱动开发之陀螺仪(三)
  7. SPP,PPM、ASPP、FPN
  8. [文摘20180514]父母这些无心的话,会扼杀孩子的乐观性格
  9. 鬼谷子猜数问题 - 高三毕业以前最后一篇日志
  10. s5pv210相关的硬件知识