Blob 在类型 'Object' 错误上不存在 - 使用 Angular 4 从调用后下载 excel 文件



前端:角4后端:Java(Restful Web服务(

我的休息电话将返回Excel作为响应。我已经写了代码将同一文件返回给用户。

我的控制器:

exportExcelXSL() {
    var excelData;
    console.log("Excel");
    console.log(this.workRequestSearchBasicReq);
    this.workRequestSearchBasicReq.OrdersPerPage = undefined;
    let request = Utility.removeUndefinedNullFields(this.workRequestSearchBasicReq);
    console.log(request);
    var data = {};
    data["ICWRQry"] = Utility.removeUndefinedNullFields(request);
    this.workRequest.workRequestReport(data).subscribe(data => {
        var mediaType = 'application/vnd.ms-excel';
        let blob: Blob = data.blob();
          window['saveAs'](blob, 'sample.xls');
      });
    this.cd.detectChanges();
}

我的服务:

workRequestReport(searchOrderReq: any): Observable<Blob> {
let workRequestSearchBeanShellUrl = "http://localhost:7001/uuigui/uui/eapp/iVAPP/WorkRequestSearchReport";
return this.httpClient.post(workRequestSearchBeanShellUrl, searchOrderReq,  {
  headers: new HttpHeaders({'responseType': 'ResponseContentType.Blob '})
 }).map(data => data.blob());
}

但是,在控制台中,我会遇到错误,因为"属性'blob'在 Service(Line:map(data => data.blob());)&amp; amp; amp;Controller(Line:let blob: Blob = data.blob();)

有人可以帮助我解决这个问题吗?

预先感谢。

您可以将workRequestReport方法更新为以下

workRequestReport(searchOrderReq: any): Observable<HttpResponse<Blob>> {
let workRequestSearchBeanShellUrl = "http://localhost:7001/uuigui/uui/eapp/iVAPP/WorkRequestSearchReport";
return this.httpClient.post(workRequestSearchBeanShellUrl, searchOrderReq, {
        observe: 'response',
        responseType: 'blob' 
    });
}

最新更新