Angular2 download excel file from Web API, file is corrupt

前端 未结 4 691
猫巷女王i
猫巷女王i 2020-12-20 03:05

I am trying to download a file that I created with ClosedXML. I have verified that the file is not corrupt but, for some reason, it works just with Angular1, not Angular2.

4条回答
  •  不思量自难忘°
    2020-12-20 03:21

    This is what worked for me(make sure that service indeed sends back xlsx file as response):

    1. Install these dependencies for show "save file" pop-up

      npm install file-saver --save-dev
      npm install @types/file-saver --save-dev
      
    2. Import in your service:

      import * as FileSaver from 'file-saver';
      
    3. Usage:

      downloadFile(): void {
          let url: string = “http://yourdomain.com/exports/excelExport.aspx”;
         let headers = new Headers({ 'Content-Type': 'application/json'} );
      
          //in case you have custom headers, else you can ignore this part
      headers.set('x-custom-header1', “some value”);
          headers.set('x-custom-header2', “some value2”);
      
          let options = new RequestOptions({responseType: ResponseContentType.Blob, headers });
      
          this.http.get(url, options)
              .map(res => res.blob())
              .subscribe(
              data => {
      FileSaver.saveAs(data, 'Export.xlsx'); 
              },
              err => {
                  console.log('error');
                  console.error(err);
              });
      }
      

提交回复
热议问题