2017-01-21 21 views
-1

JExcelApi libを使用してExcel形式でデータをエクスポートするサンプルプロジェクトを作成しました。プロジェクトにはAngular 2フロントエンドとSpring mvc(rest api)バックエンドがあります。バックエンドをtomcatにデプロイしてブラウザでリクエストすると、excelファイルが正しくエクスポートされますが、角度2(typescript)を使用して同じhttp呼び出しを行うと、Excelファイルに自分のapiのURLが書き込まれ、破損したExcelファイル。Angular 2 excel export not working

プロジェクトはgithubの場所次に位置しています

NG2 Excel Export demo

誰かが私のサービスやapp.component.tsファイルと間違っているものを私に教えてくださいことはできますか?ここで

は、私が問題に

downloadExcel(){ 
console.log("Downloading excel from server....") 
this.fileService.downloadFile() 
    .subscribe(data => window.open(window.URL.createObjectURL(data)), 
     error => console.log("Error downloading the file."), 
     () => console.log('Completed file download.')); 

}

を引き起こし、ここでデータ

downloadFile(){ 
    let url = "http://localhost:9999/api/download"; 
    var headers = new Headers(); 
    headers.append('responseType', 'arraybuffer'); 
    return this._http.get(url) 
     .map(res => new Blob([res],{ type: 'application/vnd.ms-excel' })) 
     .catch((error : any) => Observable.throw(error)); 
} 
+0

誰もあなたのリポジトリ全体でバグを探していません。具体的に問題点がどこにあるのか正確に特定する必要があります** **私たちが助けることができます –

+0

ご迷惑をおかけして申し訳ありませんが、私は問題と思われるコードスニペットを元のコメントに更新しました。私もresponsType BLOBを試みましたが、まだ運がありません – user509755

答えて

0
を返すサービスクラスであると思うapp.component.ts、内のコードベースであります

誰かがこの問題を抱えている場合に備えて、FileSaver.jsで問題を修正しました。上記のgithubプロジェクトを見てください

0

代わりにwindow.location.assign(link);を使用することをお勧めします。