码上敲享录 > js常见问题解答 > js异步方式导出excel文件

js异步方式导出excel文件

上一章章节目录下一章 2020-12-11已有30人阅读 评论(0)

js异步方式导出excel文件


解决方法:

以前通过window.open直接通过后台返回文件流到浏览器下载Excel文件,但不能做到监听文件下载是否结束来关闭等待提示框,所以通过以下js方法来实现。

var xhr = new XMLHttpRequest();

          var url = this.downloadUrl;

          xhr.open("get", url, true);//打开请求

          //设置响应类型为blob类型(接受字节流)

          xhr.responseType = "blob";

          xhr.timeout = 0; // 设置超时时间,0表示永不超时

          xhr.onload = function () {//返回成功之后执行的方法

              if (this.status == "200") {

                  //将文件流保存到a标签

                  let content = this.response;

                  // 组装a标签

                  let elink = document.createElement("a");

                  // 设置下载文件名

                  elink.download = "filename.xlsx";

                  elink.style.display = "none";

                  let blob = new Blob([content]);

                  elink.href = URL.createObjectURL(blob);

                  document.body.appendChild(elink);

                  elink.click();

                  document.body.removeChild(elink);

              } else{

                  //异常

              }

          };

          xhr.onerror = function (e) {

              //错误

          };

          xhr.ontimeout = function (e) {

              //超时

          };

          xhr.send();//发送请求


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
向大家推荐《ireport实战教程》:https://xiaozhuanlan.com/ireport?rel=6923152725
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交