最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

利用AngularJS如何实现下载excel文件功能

来源:动视网 责编:小采 时间:2020-11-27 19:38:41
文档

利用AngularJS如何实现下载excel文件功能

利用AngularJS如何实现下载excel文件功能:这篇文章主要介绍了AngularJS基于http请求实现下载php生成的excel文件功能,结合实例形式分析了AngularJS http请求及文件下载等相关操作技巧,需要的朋友可以参考下本文实例讲述了AngularJS基于http请求实现下载php生成的excel文件功能。分享给大家供大
推荐度:
导读利用AngularJS如何实现下载excel文件功能:这篇文章主要介绍了AngularJS基于http请求实现下载php生成的excel文件功能,结合实例形式分析了AngularJS http请求及文件下载等相关操作技巧,需要的朋友可以参考下本文实例讲述了AngularJS基于http请求实现下载php生成的excel文件功能。分享给大家供大


这篇文章主要介绍了AngularJS基于http请求实现下载php生成的excel文件功能,结合实例形式分析了AngularJS http请求及文件下载等相关操作技巧,需要的朋友可以参考下

本文实例讲述了AngularJS基于http请求实现下载php生成的excel文件功能。分享给大家供大家参考,具体如下:

使用PHPExcel插件的同学们都知道,导出excel是直接将生成内容修改content-type来将内容作为文件下载的,这时候需要页面上有一个url,通过点击来下载。

那么问题来了,如果在生成excel时有请求参数,只能通过js的http请求,这时候怎么下载呢?

研究了一下,有以下几种方式:

1. angularjs创建a标签模拟下载

// 创建a标签模拟下载
function exportExcel(params, filename) {
 return $http({
 url: '/api/exportExcel',
 method: "POST",
 headers: {
 'Content-type': 'application/json'
 },
 params: params,
 responseType: 'arraybuffer'
 }).success(function (data) {
 var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
 var objectUrl = URL.createObjectURL(blob);
 var a = document.createElement('a');
 document.body.appendChild(a);
 a.setAttribute('style', 'display:none');
 a.setAttribute('href', objectUrl);
 a.setAttribute('download', filename);
 a.click();
 URL.revokeObjectURL(objectUrl);
 });
}

这个方式中要注意,如果传输的是xls,也就是excel5文件,type要设置为application/vnd.ms-excel 或application/x-excel。

2. js将请求参数生成url,创建a标签

// 生成下载url
$scope.data.down_url = "../c_potential/get_excel?end_time="+$scope.end_date+"&liable="+liable+"&nickname="+$scope.data.nickname+"&province="+$scope.data.province_cur+"&start_time="+$scope.start_date;

然后将url绑定到某个a标签中,这种方式适合参数较少的情况,而且数据不会经过二次处理,不易发生error,唯一的缺点是需要处理两次,可以设置两个按钮,一个为生成,将参数写入url中,第二个按钮为下载excel。虽然用户是两次操作,但实际上只发生了一次http请求,不会影响性能。

3. 先生成后下载

第三种方式类似第二种,首先生成excel文件,储存到服务器,然后下载。涉及到磁盘IO,所以性能比较低,不推荐这种方式,只是作为一个方法记录下来。

angularjs模拟下载的方式最方便,但有可能出现error,第二种方式最保险。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在vue中如何编译打包查看index文件

在vue中如何使用Jade模板

在Angular中向组件传递模板

文档

利用AngularJS如何实现下载excel文件功能

利用AngularJS如何实现下载excel文件功能:这篇文章主要介绍了AngularJS基于http请求实现下载php生成的excel文件功能,结合实例形式分析了AngularJS http请求及文件下载等相关操作技巧,需要的朋友可以参考下本文实例讲述了AngularJS基于http请求实现下载php生成的excel文件功能。分享给大家供大
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top