2017-09-11 7 views
0

角2を学んでいますが、Web APIを使用してSQL Serverテーブルから顧客データを取り出すことで、角2のExcelファイルをダウンロードしようとしています。角2でExcelファイルをダウンロードするには

グーグルで検索した後、私はいくつかのコードが、私はダウンロードすることができるよそのコードを使用していますが、それは適切なデータが含まれていないと、ファイル名はまた、いくつかのGUID形式の下

を持っている私が使用しているコードは次のとおりです。

コンポーネント

 GetRemindersData() 
     { 
      var Flag="ALL_SPOTCHECK_RECORDS"; 
      this.httpService.GetRemindersData(Flag).subscribe(
      data=>this.downloadFile(JSON.stringify(data[1])), 
      error => console.log("Error downloading the file."), 
      () => console.info("OK")); 

     } 

     downloadFile(data:any){ 
      console.log(data); 
     var blob = new Blob([data], { type: 'application/vnd.ms-excel' }); 
      var url= window.URL.createObjectURL(blob); 
      window.open(url); 
      } 

Service.ts

   public GetRemindersData(Flag:string){ 

       var GetRemindersData_URL:string = 'http://localhost:5000/api/RemindersData/?Flag='+Flag; 


       return this.http.get(`${GetRemindersData_URL}`) 
          .map((res:Response) => res.json()) 
          .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
      }  
+0

あなたはデータあなたから前にExcelファイルのファイルを作成することができ、この記事を見て表示。それがどのように行われたかを見るために、[ここ](https://stackoverflow.com/a/44766181)の答えを見てください。 – BogdanC

+0

上記の参照の後、私は 'couldld'モジュールの宣言ファイルが見つかりませんでした。 '/ node_modules /xlsx/xlsx.js'は暗黙的に 'any'型です。 ' – user3301440

+1

私は、xlsx [here](https://github.com/bogdancar/xlsx-json-to-xlsx-demo-Angular2)を実装しているAngularデモアプリを持っています。それをクローンし、それがどのように動作するかを見てください。 – BogdanC

答えて

0

サービスリターンJSON、それはBLOB型を返す必要があり、あなたがその

return this.http.get(url,{responseType: ResponseContentType.Blob }).map(
    (res) => { 
     return new Blob([res.blob()], { type: 'application/vnd.ms-excel' }) 
    }) 

のように行うことができます。またangular2 file downlaod

+0

上記のコードを使用した後、私はちょうど定義されていない文字列の値を得たファイル – user3301440

+0

バックエンドの応答を – Robert

+0

バックアップされた応答はjsonオブジェクトの配列です – user3301440

関連する問題