博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angularJS通过post方法下载excel文件
阅读量:5056 次
发布时间:2019-06-12

本文共 1017 字,大约阅读时间需要 3 分钟。

  • 最近工作中遇到,要使用angularJS的post方法来下载excel的情况。由于请求的url中需要动态拼接签名且要对提交的参数进行封装,在网上找了很久,终于找到了一个可行的。附上代码:
$http.post($rootScope.restful_api.last_output_excel,body_data,{responseType: 'arraybuffer'}).success(function(data){                var blob = new Blob([data], {type: "application/vnd.ms-excel"});                var objectUrl = URL.createObjectURL(blob);                var aForExcel = $("下载excel").attr("href",objectUrl);                $("body").append(aForExcel);                $(".forExcel").click();                aForExcel.remove();            })

经验总结:

1.post的方法里要加responseType: 'arraybuffer'参数,不然下载的excel会乱码(这点一开始没注意到,费力好久)

2.使用{type: "application/vnd.ms-excel"}的写法,可以保存为xls格式的excel文件(兼容老版本)。而使用“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”则会保存为xlsx

3.使用增加节点调用click方法,而不使用帖子中的window.open(objectUrl)方法,是防止被浏览器当插件屏蔽弹出连接

 

  • 对于另一种不需要拼接url及提交参数的get方法:
function downExcel(this,_url){    $(this).find('a').attr('href',BASE_URL+_url+'?action=dowexcel');}

 

转载于:https://www.cnblogs.com/zq123/p/7201378.html

你可能感兴趣的文章
Java注解
查看>>
web自己主动保存表单
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
机器学些技法(9)--Decision Tree
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
【linux】重置fedora root密码
查看>>
pig自定义UDF
查看>>
Kubernetes 运维学习笔记
查看>>
Spark MLlib 之 Naive Bayes
查看>>
spring security 11种过滤器介绍
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>