Dies ist der Code meines Dienstes Excel-Datei herunterladen, die mit Antwort eine xls-Datei Post-Anforderung macht:Wie man richtig mit Angular2
exportInternalOrder(body) {
let user_token: string = this.sessionService.getToken();
let headers = new Headers();
headers.append('responseType', 'arraybuffer');
headers.append('Authorization', 'Bearer ' + user_token);
return this.http.post(this.config.exportInternalOrder, body,{
headers: headers
}).map(res => new Blob([res._body],{ type: 'application/vnd.ms-excel' }));
}
die angeblich Antwort von Excel-Datei zu behandeln. Dies ist der Code aufgerufen wird es:
let objToSend = this.makeObjToSend(false);
this.reportingService.exportExcel(objToSend)
.subscribe(
data => {
this.exportData(data);
},
error => {
this.errorFilterMsg.push({ severity: 'error', detail: 'Report exporting has failed!' });
}
);
Und dies ist das Speichern der Datei (aus irgendeinem Grunde window.open tut nichts):
exportData(data){
let blob = data;
let a = document.createElement("a");
a.href = URL.createObjectURL(blob);
a.download = 'fileName.xls';
document.body.appendChild(a);
a.click();
}
Aber die Datei immer noch als beschädigt man spart. Bei Verwendung von Postman und Curl kommt es in Ordnung. Jede Hilfe wäre willkommen.
könnten Sie uns die 'Daten' in' exportData (Daten) 'zeigen. will nur überprüfen, was in 'Daten' kommt. –
Das ist, was für mich funktionierte: https://stackoverflow.com/questions/41771041/angular2-download-excel-file-from-web-api-file-is-corrupt/44680057#44680057 – Deepak
Mögliche Duplikate von [Angular2 herunterladen Excel-Datei von Web-API, Datei ist beschädigt] (https://stackoverflow.com/questions/41771041/angular2-download-excel-file-from-web-api-file-is-corrupt) –