Angularjs导出到Excel - 在IE中不起作用,并且在ff和chrome

时间:2016-04-04 11:30:32

标签: javascript html angularjs excel jsp

我一直在尝试使用AngularJs将表从jsp页面导出到Excel。

Angularjs会不会在IE中运行?并且还收到此错误SCRIPT5009: 'Node' is undefined

在Chrome和Firefox中,excel仅在我保存而不是使用open with选项时才会打开。保存的Excel不正确。试图解决这个问题几周。

甚至尝试过使用Jquery,但没有运气。 请给我一个解决方案。真的很感激。

我的jsp:

<html>
<head>
<script src="/Pulse/static/scripts/jquery-1.11.2.min.js"></script><script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script src="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>
</head>
<body>
<div id="myCtrl" ng-app="myApp" ng-controller="myCtrl">
<table>
    <tr><td>
    <p ng-click="exportData()" id="myImg">Click here</p>
    </td></tr>
</table>
    <div id="exportable">
    <table width="100%" id="myTable">
        <thead>
            <tr>
                <th>Num</th>
                <th>Sq</th>
            </tr>
        </thead>
        <tbody>
         <tr>
                <td>2</td>
                <td>4</td>
            </tr>
        </tbody>
    </table>
    </div>
</div>  
</body>
</html>

我的角色:

<script>
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl',function($scope, $http) {
    $scope.exportData = function() {
        var blob = new Blob(
                [ document.getElementById('myTable').innerHTML ],
                {
                    type : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
                });
        window.saveAs(blob, "MyRep.xls");
    }
});
</script>

我在Firefox中点击open with excel时得到了这个:

enter image description here 打开保存的Excel时:

enter image description here

任何人都可以指出我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

你可以推荐这个:

var myApp = angular.module('myApp', ['ui.bootstrap', 'ngAnimate', 'ngTouch', 'mgcrea.ngStrap']);myApp.controller('myCtrl',function($scope, $http,$timeout) {

$scope.exportData = function() {
    $timeout(function () {
        var blob = new Blob([ document.getElementById('myTable').innerHTML ],
        {
            type : "application/vnd.ms-excel"
        });
    saveAs(blob, "MyRep.xls");}, 2000);
}

});

我想在firefox中运行良好

我在我的页面中使用了其他脚本

<link href="~/Content/Controls/AngularStrap/libs.min.css" rel="stylesheet" /><script src="~/Content/Controls/AngularStrap/angular-strap.min.js"></script><script src="~/Content/Controls/AngularStrap/angular-strap.tpl.min.js"></script><script src="~/Content/Controls/FileSaver/FileSaver.js"></script>