zoukankan      html  css  js  c++  java
  • 前端调用后端接口下载excel文件的几种方式

      今天有一个导出相应数据为excel表的需求。后端的接口返回一个数据流,一开始我用axios(ajax类库)调用接口,返回成功状态200,但是!但是浏览器没有自动下载excel表,当时觉得可能是ajax的安全性问题导致无法下载。下面列觉两种我测试成功的方式:

      1.window.location.href = '接口地址'

        含义:当前页面打开URL页面.

        和在浏览器输入接口地址一样,可以下载excel文件.但是缺点是无法执行POST请求

      

      2.利用隐藏表单解决(我这里假设加入了JQuery库):

    var exportData = [
        {'list1':'xiaodo1'},
        {'list2':'xiaodo2'}   
     ]  //模拟后台需要接收的参数
    let form = $("<form>"); //创建form标签
    
    form.attr("style","display:none");
    from.attr("method","post");//设置请求方式
    form.attr("action","接口地址"); //action属性设置请求路径
    $("body").append(form); //页面添加form标签
    
    let input1 = $("<input>") //创建input标签
    input1.attr("type","hidden") //设置隐藏域
    input1.attr("name","data") //设置发送后台数据的参数名
    input1.attr("value",JSON.Stringify(exportData));
    
    form.submit();//表单提交即可下载!
    

      

    上面就是我测试成功的两种方法.后面我去百度了一下axios如何导出excel文件,发现也是可以的.

    axios导出excel文件可以参考这篇文章:https://blog.csdn.net/u013224660/article/details/79981350

    谢谢!

  • 相关阅读:
    【ES】学习10-聚合3
    Flink – CEP NFA
    cruise-control
    FlinkCEP
    Flink
    SQL Join
    Flink – Stream Task执行过程
    Flink
    Java8
    Flink
  • 原文地址:https://www.cnblogs.com/soyxiaobi/p/9362516.html
Copyright © 2011-2022 走看看