(function () { 'use strict'; angular.module('ngJsonExportExcel', []) .directive('ngJsonExportExcel', function () { return { restrict: 'AE', scope: { data : '=', filename: '=?', reportFields: '=', separator: '@' }, link: function (scope, element) { scope.filename = !!scope.filename ? scope.filename : 'SalesReport'; var fields = []; var header = []; var separator = scope.separator || ','; angular.forEach(scope.reportFields, function(field, key) { if(!field || !key) { throw new Error('error json report fields'); } fields.push(key); header.push(field); }); element.bind('click', function() { var bodyData = _bodyData(); var strData = _convertToExcel(bodyData); var blob = new Blob([strData], {type: "text/plain;charset=utf-8"}); return saveAs(blob, [scope.filename + '.csv']); }); function _bodyData() { var data = scope.data; var body = ""; angular.forEach(data, function(dataItem) { var rowItems = []; angular.forEach(fields, function(field) { if(field.indexOf('.')) { field = field.split("."); var curItem = dataItem;
source share