详解ajax实现excel报表导出


本文摘自PHP中文网,作者coldplay.xixi,侵删。

推荐(免费):ajax视频教程

利用ajax实现excel报表导出【解决乱码问题】,供大家参考,具体内容如下

背景

项目中遇到一个场景,要导出一个excel报表。由于需要token验证,所以不能用a标签;由于页面复杂,所以不能使用表单提交。初步考虑前端使用ajax,后端返回流,定义指定的header。

第一版

主要代码

前端

使用jquery的ajax

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

var queryParams = {"test":"xxx"};

var url = "xxx";

$.ajax({

 type : "POST", //提交方式

 url : url,//路径

 contentType: "application/json",

 data: JSON.stringify(queryParams),

 beforeSend: function (request) {

  request.setRequestHeader("Authorization", "xxx");

 },

 success : function(result) {

  const blob = new Blob([result], {type:"application/vnd.ms-excel"});

  if(blob.size < 1) {

   alert('导出失败,导出的内容为空!');

   return

  }

  if(window.navigator.msSaveOrOpenBlob) {

   navigator.msSaveOrOpenBlob(blob, 'test.xls')

  } else {

   const aLink = document.createElement('a');

   aLink.style.display = 'none';

   aLink.href = window.URL.createObjectURL(blob);

   aLink.download = 'test.xls';

   document.body.appendChild(aLink);

   aLink.click();

   document.body.removeChild(aLink);

  }

 }

});

后端

使用easypoi(如何使用easypoi请自行百度)

阅读剩余部分

相关阅读 >>

什么是ajax跨域访问

介绍spring中ajax与后台传输数据的几种方式

ajax常见的面试问题

如何解决jquery ajax中文乱码问题

如何实现ajax请求?

jquery javascript ajax区别是什么

如何解决jquery ajax乱码问题

vue应用程序中实现ajax的四个地方

jquery与ajax的区别是什么

快来看看 ajax实时刷新处理

更多相关阅读请进入《excel报表》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...