Angular2:下载我从后端获得的xls文件
Angular2: Download xls file I've got from back-end
我正在使用 Laravel 5.1 REST API 和 maatwebsite 解决方案以便在后端生成 Excel 文件。我唯一想要的是点击按钮开始下载文件。
目前我正在通过本机 Angular2 Http
服务发送 AJAX 请求并得到类似这样的东西
`��ࡱ�;�� ��������������������������������` ...
据我了解,它实际上是 returns 一个文件,但我必须以正确的方式对其进行解码?
有可行的解决方案吗?
在您发送 http 请求的服务或组件中。将您的响应映射到 blob。从 @angular/http 导入 ResponseContentType。下载方式如下:
var link=document.createElement('a');
link.href=window.URL.createObjectURL(res);
link.download="District.xls";
link.click();
在服务中这样做:
import { Response, ResponseContentType } from '@angular/http';
downloadExcel(){
let url = 'your url/api'
return this.http.get(url,{headers:'pass your header',responseType: ResponseContentType.Blob})
.map(response=>response.blob())
.catch(error=>{return Observable.throw(error)})
}
我正在使用 Laravel 5.1 REST API 和 maatwebsite 解决方案以便在后端生成 Excel 文件。我唯一想要的是点击按钮开始下载文件。
目前我正在通过本机 Angular2 Http
服务发送 AJAX 请求并得到类似这样的东西
`��ࡱ�;�� ��������������������������������` ...
据我了解,它实际上是 returns 一个文件,但我必须以正确的方式对其进行解码?
有可行的解决方案吗?
在您发送 http 请求的服务或组件中。将您的响应映射到 blob。从 @angular/http 导入 ResponseContentType。下载方式如下:
var link=document.createElement('a');
link.href=window.URL.createObjectURL(res);
link.download="District.xls";
link.click();
在服务中这样做:
import { Response, ResponseContentType } from '@angular/http';
downloadExcel(){
let url = 'your url/api'
return this.http.get(url,{headers:'pass your header',responseType: ResponseContentType.Blob})
.map(response=>response.blob())
.catch(error=>{return Observable.throw(error)})
}