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)})
  }