博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angularjs 通过WebApi 下载excel
阅读量:5160 次
发布时间:2019-06-13

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

如果想知道 AngularJs 通过WebAPI 下载Excel。请看下文,这里仅提供了一种方案。 

服务器端代码如下:

protected HttpResponseMessage GenereateExcelMessage(HttpRequestMessage Request, string fileName, string generatedFile)        {            if (System.IO.File.Exists(generatedFile))            {                var response = Request.CreateResponse(HttpStatusCode.OK);                System.IO.FileStream fileStream = new System.IO.FileStream(generatedFile, System.IO.FileMode.Open, System.IO.FileAccess.Read);                System.IO.MemoryStream ms = new System.IO.MemoryStream();                fileStream.CopyTo(ms);                response.Content = new ByteArrayContent(ms.ToArray());                response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");                response.Content.Headers.ContentDisposition.FileName = fileName;                response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");                return response;            }            else            {                return Request.CreateResponse(HttpStatusCode.InternalServerError);            }        }

 

 客户端,可将以下代码放在Service里或者修改后放在Controller里

this.exportExcel = function (SearchOption) {            return $http.post('/api/XXXl', { paramenters: XX }, { responseType: "arraybuffer" }).then(function (response) {                var data = new Blob([response.data], { type: response.headers('Content-Type') });                var filename = response.headers('Content-Disposition').split(';')[1].trim().substr('filename='.length);                FileSaver.saveAs(data, filename);            });        };

  

转载于:https://www.cnblogs.com/chen-dong/p/5180182.html

你可能感兴趣的文章
Redis PHP连接操作
查看>>
执法文书打印的实现(三)(word→png的实现)
查看>>
Looper.loop() android线程中的消息循环
查看>>
Dalvik虚拟机JNI方法的注册过程分析
查看>>
java中文乱码解决之道(四)—–java编码转换过程
查看>>
《Linux运维趋势》2010-2013年全部期刊下载
查看>>
2015-04-20一些知识点
查看>>
[转]Python与设计模式
查看>>
多线程的自动管理(线程池)
查看>>
BZOJ 1185 最小矩形覆盖
查看>>
2015年创新工场校园招聘软件研发岗位笔试题目——矩阵旋转
查看>>
openstack——nova计算服务
查看>>
匿名对象,内部类和访问修饰符应用
查看>>
Autograd:自动微分
查看>>
Free Type 在win32平台下显示中文
查看>>
POJ 3279 Fliptile (二进制+搜索)
查看>>
poj2385(dp)
查看>>
archlinux硬盘安装
查看>>
总结ISO各层协议都有哪些
查看>>
官网——Nagios快速安装过程详解(只提供参考)
查看>>