请有人帮助我使用" Blob"在angularJs中下载excel文件。它在Chrome和IE10和11中工作但是当我使用Firefox和IE8& 9时,没有弹出下载会告诉我们在Chrome中保存或打开它的位置。
我的API数据成功返回要下载的字节,但我的客户端脚本无法下载。
这是我在AngularJS中的代码:
$scope.LoadData = function () {
$scope.yearIsLoading = true;
reportsService.getAssessmentReports($scope.filter).$promise.then(function (response) {
if (response != null) {
var file = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
saveAs(file, 'Assessments Report');
$scope.yearIsLoading = false;
}
});
};
这是我在IE8和IE9中得到的错误:
[IE8 and IE9 Error][1]
在Firefox中我无法看到错误,但在点击导出按钮后却没有发生。
提前感谢能够帮助我解决此问题的人。 :)
答案 0 :(得分:0)
您可以尝试这样的事情:
var file = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
if(window.navigator.userAgent.indexOf("MSIE ") > 0 || window.navigator.userAgent.indexOf("Trident/ ") > 0 || window.navigator.userAgent.indexOf("Edge/") > 0)
{
window.navigator.msSaveOrOpenBlob(file);
}