javascript – 以CSV格式导出数据,Excel,PDF格式的AngularJS

我想在我的应用程序中以CSV,Excel,PDF格式功能添加导出表数据.

我正在使用angularjs 1.2.16构建应用程序.

在Excel中导出数据

我用过

<script src="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>

使用以下代码将表导出为XLS格式:

var blob = new Blob([document.getElementById('exportable').innerHTML], {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
saveAs(blob, "report.xls");

以上代码正常工作.

以CSV,PDF格式导出数据

以同样的方式,我想以CSV和PDF格式导出数据.

我使用http://www.directiv.es/ng-csv导出数据CSV,但它不能正常工作在ubuntu libre办公室(文件显示损坏的数据).

任何人都可以告诉我如何以CSV,Excel和PDF格式导出table数据?

最佳答案
您可以将数据从AngularJS导出到XLS,XLSX,CSV和TAB格式,并将Alasql的JavaScript库与XLSX.js导出.

在代码中包含两个库:

> alasql.min.js
> xlsx.core.min.js

要将数据导出为Excel格式,请在控制器代码中创建一个函数:

function myCtrl($scope) {
    $scope.exportData = function () {
       alasql('SELECT * INTO XLSX("mydata.xlsx",{headers:true}) FROM ?',[$scope.items]);
    };
    $scope.items = [{a:1,b:10},{a:2,b:20},{a:3,b:30}];
};

然后在HTML中创建一个按钮(或任何其他链接):

<div ng-controller="myCtrl">
    <button ng-click="exportData()">Export</button>
</div>

尝试在jsFiddle this example.

要将数据保存为CSV格式,请使用CSV()函数:

alasql("SELECT * INTO CSV('mydata.csv', {headers:true}) FROM ?",[$scope.mydata]);

或者使用TXT(),CSV(),TAB(),XLS(),XLSX()函数来获取正确的文件格式.

转载注明原文:javascript – 以CSV格式导出数据,Excel,PDF格式的AngularJS - 代码日志