Angular 2 excel导出无法正常工作

时间:2017-01-21 18:58:17

标签: excel spring-mvc angular

我创建了使用JExcelApi lib以excel格式导出数据的示例项目。项目有Angular 2前端和spring mvc(rest api)后端。如果我将后端部署到tomcat并通过浏览器发出请求,那么它正在正确导出excel文件但是当我使用angular 2(typescript)进行相同的http调用时,它会在excel文件中写入我的api的url并显示为损坏的excel文件

项目位于以下github位置

NG2 Excel Export demo

有人可以告诉我我的服务或app.component.ts文件有什么问题吗?

以下是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));
}

2 个答案:

答案 0 :(得分:0)

我已经修复了FileSaver.js的问题,以防有人遇到此问题。看看上面的github项目

答案 1 :(得分:0)

最好使用window.location.assign(link);代替。