2016-05-26 53 views
5

kullanarak excel Veri sayfamı açısal 2 web sitesinden oluşturdum. Şimdi json verisini PDF'ye açarak, açısal 2 çerçeveyi kullanarak excel istiyorum.Json verilerimi pdf'ye dışa aktarma, açısal 2

Lütfen bana öneride bulunun, varsa bunu veya herhangi bir bağı nasıl başarabilirim.

Selamlar

+0

Eklenti kullanmak istiyor musunuz? – WorkWe

+0

https://medium.com/@darilldrems/angularjs-export-html-table-to-pdf-excel-or-doc-formats-bb741d06dfec#.ll3d5jtlc bu sizin aradığınız şey olabilir. Aksi takdirde, verileri bir istek ile php gibi bir şeye yapıştırabilir ve orada işleyebilirsiniz. – SeRu

cevap

0

Kullanım jsPDF JSON'dan PDF dönüştüğünde için.

Ve AlaSQL JSON'dan Excel'e (* .xls, * .xlsx) dönüştürmek için.

0
(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; 

            // deep access to obect property 
            angular.forEach(field, function(prop){ 
             if (curItem !== null && curItem !== undefined) { 
              curItem = curItem[prop]; 
             } 
            }); 

            data = curItem; 
           } 
           else { 
            data = dataItem[field]; 
           } 

           var fieldValue = data !== null ? data : ' '; 

           if (fieldValue !== undefined && angular.isObject(fieldValue)) { 
            fieldValue = _objectToString(fieldValue); 
           } 

           if(typeof fieldValue == 'string') { 
            rowItems.push('"' + fieldValue.replace(/"/g, '""') + '"'); 
           } else { 
            rowItems.push(fieldValue); 
           } 
          }); 

          body += rowItems.join(separator) + '\n'; 
         }); 

         return body; 
        } 

        function _convertToExcel(body) { 
         return header.join(separator) + '\n' + body; 
        } 

        function _objectToString(object) { 
         var output = ''; 
         angular.forEach(object, function(value, key) { 
          output += key + ':' + value + ' '; 
         }); 

         return '"' + output + '"'; 
        } 
       } 
      }; 
     }); 
})(); 
+1

açısal 2 dedi ki ... –