当前位置: 首页 > news >正文

EasyExcel下载EXCEL文件,后台通过流形式输出到前端浏览器下载方式输出

前端代码(参考):

$("#import").on('click', function(){var createDate=$("#createdDate").val();var key1=$("#key1").val();if(createDate==null||createDate==""){layer.msg("请选择创建时间段!在点击导出数据)");return ;}var load = layer.load();//原生ajaxvar xhr = new XMLHttpRequest();//post方式请求后台的路径xhr.open('post', gatewayServerUrl+'/execute/openApi/importByCreate2', true);//导出的Excel是二进制数据类型,所以设置为blobxhr.responseType = 'blob';//请求头(key,value),请求头可以设置多个key-value对xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');//返回成功,导出的Excel文件xhr.onload = function () {if (this.status == 200) {layer.close(load);var blob = this.response;var a = document.createElement('a');var url = window.URL.createObjectURL(blob);a.href = url;//设置文件名称a.download = '产品完检管理【'+createDate+'】.xlsx';a.click();}}//请求的参数,json格式,后台要用json格式接收xhr.send(JSON.stringify({"createDate" : createDate,"key1":key1}));});

后端代码(参考):

List<ManuProductCheckExport> list = new ArrayList<>();
OutputStream out = response.getOutputStream();
//文件名需要这样写,不能在setHeader直接写中文名,否则下载的文件名字为空,只有后缀
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("导出数据产品完检", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
ExcelWriter excelWriter = EasyExcelFactory.write(out).build();
EasyExcel.write(response.getOutputStream(), ManuProductCheckExport.class).sheet("sheet").doWrite(list);
excelWriter.finish();
out.flush();
out.close();

依赖:

<!-- easyexcel导入导出 -->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version>
</dependency>

http://www.lryc.cn/news/281566.html

相关文章:

  • Pandas实战100例 | 案例 56: 创建多重索引
  • 解决“nacos默认secret.key配置不当权限绕过漏洞“
  • 一款好用的开源思维导图软件 docker部署教程
  • Jenkins之pipeline
  • 创意交融:集成自定义报表和仪表盘设计器,实现图标替换
  • Mybatis 40_resultMap基础和@Results注解
  • 【蓝桥杯选拔赛真题31】C++数位求和 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
  • 牛客网-css继承属性
  • OpenCV-19图像的仿射变换
  • 数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二
  • 第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌
  • 通过myBatis将sql语句返回的值自动包装成一个java对象(3)
  • 基于SSM的驾校信息管理系统设计与实现
  • 矩阵行列式的四大应用
  • 【小笔记】时序数据分类算法最新小结
  • 使用Python+pygame实现贪吃蛇小游戏
  • SpringBoot 全局异常统一处理:BindException(绑定异常)
  • ucloud轻量云(wordpress)配置ssl
  • 电脑/设备网络共享给其他设备上网
  • vue之虚拟滚动
  • Redis学习指南(11)-Redis的有序集合数据类型介绍
  • Spring的纯注解配置
  • numpy 筛选多段数据
  • 【Kotlin】协程的字节码原理
  • 区间预测 | Matlab实现LSSVM-ABKDE的最小二乘支持向量机结合自适应带宽核密度估计多变量回归区间预测
  • 基于深度学习的实例分割的Web应用
  • 20240115如何在线识别俄语字幕?
  • Flink 处理函数(1)—— 基本处理函数
  • Linux系统下编译MPlayer
  • 事务的ACID属性是什么?为什么它们很重要?