前端:角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'
});
}