Excelドキュメントを応答として返すAPIを持っています。リクエストは1つの単純なJSONになります。
私はグーグルを検索し、ファイルをダウンロードするためのコードベースを見つけ、それを自分のアプリケーションで使用しましたが、いくつかのエラーが発生し、解決策を見つけることができません。以下は私のコードベースです。
component.ts
import rxjs/Rx;
details = {id: 75,name: "some name"}
this.nameService.getData(this.details).subscribe(response => {
this.downloadFile(response);
})
downloadFile(data: Response) {
const blob = new Blob([data], { type: '.xlsx' });
const url= window.URL.createObjectURL(blob);
window.open(url);
}
nameService.ts
getData(postData) {
return this.httpService.post('https://localhost:8080/getFile/', postData);
}
httpService.ts
constructor(private http: HttpClient)
post(apiEndpoint: string, request: any) :Observable<any> {
return this.http.post<any>(apiEndpoint,request);
}
上記のコードベースを使用すると、2つのエラーが発生し、ファイルがダウンロードされません。
Blob(const blob = new Blob([data]、{type: '.xlsx'});)を作成する際の「タイプレスポンスはタイプBlobpartに割り当てられません」
上記の問題の解決策を見つけた人を助けてください。
ファイルをダウンロードするには、以下のコードを使用します
downloadFile(data: Response) {
const blob = new Blob([data], { type: 'application/octet-stream' });
fs.saveAs(blob, fileName + '.xlsx');
}