springBoot+Vue导出Excel

后端下载依赖包:

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version>
</dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version>
</dependency>

后端代码:

 @RequestMapping("/testExprotExcelx")public String  testExprotExcelx(){try {//创建一个数组用于设置表头List<String> header =new ArrayList<>();header.add("姓名");header.add("年龄");header.add("性别");//数据List<Map<String,String>> list=new ArrayList<>();Map<String ,String> map=new HashMap<>();map.put("姓名","张三");map.put("年龄","12");map.put("性别","男");list.add(map);Map<String ,String> map1=new HashMap<>();map1.put("姓名","李四");map1.put("年龄","13");map1.put("性别","男");list.add(map1);Map<String ,String> map2=new HashMap<>();map2.put("姓名","赵梅");map2.put("年龄","12");map2.put("性别","女");list.add(map2);//声明一个工作簿XSSFWorkbook workbook = new XSSFWorkbook();//生成一个表格,设置表格名称为"每日库存情况表"XSSFSheet sheet = workbook.createSheet("每日库存情况表");//设置表格列宽度为10个字节sheet.setDefaultColumnWidth(10);//创建第一行表头XSSFRow headrow = sheet.createRow(0);//遍历添加表头for (int i = 0; i < header.size(); i++) {//创建一个单元格XSSFCell cell = headrow.createCell(i);//创建一个内容对象XSSFRichTextString text = new XSSFRichTextString(header.get(i));//将内容对象的文字内容写入到单元格中cell.setCellValue(text);}//模拟遍历结果集,把内容加入表格for (int i = 0; i < list.size(); i++) {XSSFRow row1 = sheet.createRow(i+1);for (int j=0;j<header.size();j++){XSSFCell cell = row1.createCell(j);XSSFRichTextString text = new XSSFRichTextString(list.get(i).get(header.get(j))+"");cell.setCellValue(text);}}//准备将Excel的输出流通过response输出到页面下载response.setContentType("application/octet-stream");response.setHeader("Content-disposition", "attachment;filename=student.xlsx");//刷新缓冲response.flushBuffer();//workbook将Excel写入到response的输出流中,供页面下载workbook.write(response.getOutputStream());return "导出成功";} catch (Exception e) {e.printStackTrace();return "导出失败";}}

前端代码:

outExcel(){const loading = this.$loading({lock: true,text: '努力加载中',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'});this.$axios({method: 'get',url: '/api/inventory/testExprotExcelx',responseType: 'blob'}).then((res) => {const content = res.dataconst blob = new Blob([content])//构造一个blob对象来处理数据const fileName = 'test.xlsx'//对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性//IE10以上支持blob但是依然不支持downloadif ('download' in document.createElement('a')) { //支持a标签download的浏览器const link = document.createElement('a')//创建a标签link.download = fileName//a标签添加属性link.style.display = 'none'link.href = URL.createObjectURL(blob)document.body.appendChild(link)link.click()//执行下载URL.revokeObjectURL(link.href) //释放urldocument.body.removeChild(link)//释放标签} else { //其他浏览器navigator.msSaveBlob(blob, fileName)}loading.close()}, (error) => {this.$message.error('请求异常');loading.close()})
},

springBoot+Vue导出Excel相关推荐

  1. vue导出excel加一个进度条_vue导出excel遇到的问题解决方法

    本篇文章给大家带来的内容是关于vue导出excel遇到的问题解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 需求: Vue+element UI el-table下的导出当前 ...

  2. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  3. (vue)vue导出excel文件打不开,或者文件内容为object object

    (vue)vue导出excel文件打不开,或者文件内容为object object[已解决] bug: 主要原因:没有注意到后端返回的数据格式,需要的是res而不是res.data 正确写法: < ...

  4. vue导出excel功能实现

    vue导出excel功能实现 第一步安装依赖包 第二步在项目中assets创建一个新的文件夹js用于存放Blob和Export2Excel两个js文件 第三步在你那个组件中使用 写事件方法 Expor ...

  5. 封装vue导出excel组件(扩展嵌入图片、操作工作表、表格样式等功能)

    导出的excel中嵌入图片,同时还需要操作多个工作表与表格样式, 看了一些java的插件不太适合,因为我这边的需求是动态表单,字段不固定.后端的插件大部分依赖实体类注解,要不就是操作比较繁琐.又看了一 ...

  6. vue导出excel表的时候有多张图片

    vue导出excel的时候多张图片 遇到数据结构是[ { id:id, image:['图片','图片','图片'] } ] 这样的数据导出,使用插件 js-table2excel 导出的时候发现它只 ...

  7. vue导出Excel表格全局函数(简洁明了)

    vue导出excel全局函数(简洁明了) 将导出到Excel功能封装成一个公用js函数,供其他vue页面复用. 1.安装Excel插件 npm install --save xlsx file-sav ...

  8. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」(亲测)

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 来源:Springboot使用POI实现导出Excel文件示例的搜索结果-阿里云开 ...

  9. 【vue开发】vue导出Excel表格教程demo

    前端工作量最多的就是需求,需求就是一直在变,比如当前端数据写完之后,需要用Excel把数据下载出来:再比如前端在没有数据库想写些demo玩时,也是很好的选择. 第一步安装依赖包,修改配置 1.装依赖: ...

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

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

最新文章

  1. templateclass T函数模板
  2. qpython3l手机版安装第三方库总是报错_python编码问题在此终结
  3. 全网最火爆的“人生重开模拟器”,快来!
  4. 大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Log存储解析
  5. 如何在Mac上用汇编语言写HelloWorld
  6. 做IM netty的优势
  7. gradle 编译失败,出现 permgen space的问题
  8. EI收录的中国(中文)期刊(2021版)
  9. 【转帖】lcd1602中文资料
  10. 四阶龙格库塔算法及matlab代码
  11. 计算机组装需要注意什么东西,自己组装电脑需注意事项图文详情
  12. 【无人机组装与调试】第六章 电调、电池、电机
  13. 备战数学建模2——MATLAB导入数据,处理缺失值
  14. 读 《我为什么要逃离北上广了?》有感
  15. Android Contacts 联系人源码分析
  16. 51单片机之蜂鸣器弹钢琴
  17. 二叉树的前序遍历-python
  18. 分布式专题(2)- 分布式 Java通信
  19. 本地k8s集群搭建保姆级教程(4)-安装k8s集群Dashboard
  20. 【CEGUI】资源加载流程

热门文章

  1. scrt设置右键粘贴,选中复制
  2. CE修改器使用教程 [入门篇]
  3. C语言libiconv编程,libiconv字符集转换库在C#中的使用
  4. MDT实现windows系统批量部署
  5. 韩顺平 java 坦克大战_韩顺平坦克大战源代码 韩顺平老师视频里的坦克大战 - 下载 - 搜珍网...
  6. 游戏必备组件有哪些_微信广告将升级小程序、小游戏开发者收入方案
  7. ubuntu 黑体_linux ubuntu 思源黑体安装
  8. Thor HTTP 抓包嗅探分析接口调试网络协议
  9. 固态硬盘故障检测_diskgenius检测固态硬盘(ssd固态硬盘坏道修复)
  10. pcb天线和纯铜天线_PCB天线和FPC天线有怎样的特性