小编Abh*_*eep的帖子

如何使用Angular2正确下载excel文件

这是我的服务代码,它通过响应xls文件发出post请求:

exportInternalOrder(body) {
        let user_token: string = this.sessionService.getToken();
        let headers = new Headers();
        headers.append('responseType', 'arraybuffer');
        headers.append('Authorization', 'Bearer ' + user_token);
        return this.http.post(this.config.exportInternalOrder, body,{
            headers: headers
        }).map(res => new Blob([res._body],{ type: 'application/vnd.ms-excel' }));
    }
Run Code Online (Sandbox Code Playgroud)

应该处理excel文件的响应.这是调用它的代码:

let objToSend = this.makeObjToSend(false);
this.reportingService.exportExcel(objToSend)
    .subscribe(
        data => {
            this.exportData(data);
        },
        error => {
            this.errorFilterMsg.push({ severity: 'error', detail: 'Report exporting has failed!' });
        }
);
Run Code Online (Sandbox Code Playgroud)

这是文件的保存(由于某种原因,window.open什么都不做):

exportData(data){       
        let blob = data;
        let a = document.createElement("a");
        a.href = URL.createObjectURL(blob);
        a.download = 'fileName.xls';
        document.body.appendChild(a);
        a.click();        
    }
Run Code Online (Sandbox Code Playgroud)

但该文件仍然保存为损坏的文件.使用邮差和卷曲时,它就可以了.任何帮助,将不胜感激.

excel content-type angular2-http angular

5
推荐指数
1
解决办法
2万
查看次数

角绑定打破小数位

在我的$ scope中,我的tobing = 2.00或tobind = 2.20,我将其绑定到

  <span >{{datasource.tobind}}</span>
Run Code Online (Sandbox Code Playgroud)

我希望绑定的显示文本的最后两位总是“ 2.00”或“ 2.20”,但角度似乎是自动舍入。一种解决方法是将其设置为文本并将其绑定为字符串,但是在逻辑上会导致很多地方将其强制转换为数字,然后转换为字符串,这使兔子哭了起来。请提出如何解决自动舍入的建议。

javascript binding decimal angularjs

2
推荐指数
1
解决办法
1310
查看次数