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

这篇具有很好参考价值的文章主要介绍了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();
    //原生ajax
    var xhr = new XMLHttpRequest();
    //post方式请求后台的路径
    xhr.open('post', gatewayServerUrl+'/execute/openApi/importByCreate2', true);
    //导出的Excel是二进制数据类型,所以设置为blob
    xhr.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();

依赖:文章来源地址https://www.toymoban.com/news/detail-794733.html

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

到了这里,关于EasyExcel下载EXCEL文件,后台通过流形式输出到前端浏览器下载方式输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot通过前端发起请求,拿到数据库中的数据并生成excel表格,postman请求并下载文件

    springboot版本3.2.0,数据库版本8 mybatisplus版本3.5.4.1 依赖 实体类 实体类中的枚举类型转换,因调用方法后还是不能转换类型所以暂未解决 Controller层 postman测试 Excel表格 获取数据成功

    2024年01月18日
    浏览(30)
  • 前端js打开pdf文件--文件通过浏览器打开,以pdf形式进行预览

    通过点击button按钮,触发 @click=\\\"openPDF(performance_report)\\\"方法,把对应需要展示的pdf传送到openPDF()方法内,这里的pdf文件格式必须包括id、name、url。 在这里,performance_report为预览的文件:

    2024年02月14日
    浏览(40)
  • 前端下载文件或者图片方式,window.open或者a标签形式

    1.通过a标签的方式下载文件 我们点击下载,发现是跳转到了百度的首页,并没有真的下载文件。 因为 a 标签下载只能下载 同源 的文件;如果是 跨域 的文件,比如图片、音视频等媒体文件等都无法使用上面的 a 标签方式下载。 上面的代码是直接通过书写 a 标签来实现文件下

    2024年02月03日
    浏览(44)
  • 前端将file文件传给后台,后台将文件传给前台(包含上传下载)

    在开发过程中,经常会遇见对文件的处理。 例如:在上传、下载文件时,需要在前端选完文件传到后台传到服务器;或者文件从后台,经过特定需求的处理在返回给前台。 中间处理过程各种各样,但有两个过程是固定的 前端传给后台 后台返回给前端 经常用到的上传就是对

    2024年02月11日
    浏览(36)
  • 文件下载-后台返回流给前端

    在上面的 Servlet 中,首先需要获取要返回的文件路径,然后检查文件是否存在。如果文件不存在,返回 HttpServletResponse.SC_NOT_FOUND 响应代码;否则,设置 HTTP 响应类型为 application/octet-stream ,并且设置响应头 Content-Disposition 为 attachment ,这样浏览器会自动弹出文件下载对话框。

    2024年02月09日
    浏览(25)
  • 跨域情况下,vue如何下载后台接口提供的application/octet-stream文件流Excel文件

    由于跨域,所以无法直接通过window.location.href或者a标签直接下载,直接拼后台接口地址又暴露了后台地址,不可行。 所以在这种跨域情况下,本章讲一下vue如何下载后台接口提供的application/octet-stream文件流Excel文件。 实现前端vue下载后台返回的application/octet-stream文件流 1、使

    2024年02月14日
    浏览(34)
  • VUE通用后台管理系统(四)前端导出文件(CSV、XML、HTML、PDF、EXCEL)

    常见的导出格式:CSV、XML、HTML、PDF、EXCEL 1)准备工作 安装所需相关依赖 前两个是PDF格式需要的依赖,后两个是excel格式所需,如果没有需求这两种格式的可以忽略这一步 然后画页面   页面效果 2)导出CSV格式的文件 新建src/utils/utils.js文件 写入exportCsv方法,columns为表头,

    2024年02月05日
    浏览(42)
  • #vue3 实现前端下载excel文件模板功能

    一、需求: 前端无需通过后端接口,即可实现模板下载功能。 通过构造一个 JSON 对象,使用前端常用的 第三方库 xlsx ,可以直接将该 JSON 对象转换成 Excel 文件,让用户下载模板 二、效果: 三、源码如下:

    2024年01月19日
    浏览(45)
  • Springboot通过前端发起请求,上传excel文件解析数据 postman进行操作

    springboot版本3.2.0,数据库版本8 mybatisplus版本3.5.4.1 controller层 测试结果 后端返回数据 Postman返回数据 注意 使用postman进行测试时,需要把key传进去,不然会报空文件异常,

    2024年01月18日
    浏览(44)
  • 快速整合EasyExcel实现Excel的上传下载

    1.EasyExcel 2.Excel的上传(读Excel) 3.Excel的下载(写Excel) 4.结语 1.EasyExcel 首先,这里给出EasyExcel的官方文档:https://easyexcel.opensource.alibaba.com/ alibaba.com不用我多说了吧,大家都认识,这个东西就是阿里开发的:EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Exce

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包