2016-05-26 21 views
5

Tôi đã tạo Bảng dữ liệu của mình từ trang web góc 2. Bây giờ tôi muốn xuất dữ liệu json của tôi sang PDF, excel bằng cách sử dụng khung 2 góc.Cách xuất dữ liệu json của tôi sang pdf, excel sử dụng góc 2

Vui lòng cho tôi đề xuất cách tôi có thể đạt được liên kết đó hoặc bất kỳ liên kết nào nếu bạn có.

Kính trọng

+0

Bạn có muốn sử dụng plugin không? – WorkWe

+0

https://medium.com/@darilldrems/angularjs-export-html-table-to-pdf-excel-or-doc-formats-bb741d06dfec#.ll3d5jtlc điều này có thể là những gì bạn đang tìm kiếm. Nếu không, bạn có thể sned dữ liệu thông qua một yêu cầu đến một cái gì đó như php và xử lý nó ở đó. – SeRu

Trả lời

0

Sử dụng jsPDF để chuyển đổi từ JSON sang PDF.

AlaSQL để chuyển đổi từ JSON sang Excel (* .xls, * .xlsx).

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

góc 2 anh ấy nói ... –

0

Có lẽ bạn nên tìm kiếm cách xuất của bạn data-table đến một đối tượng định dạng JSON sau đó có rất nhiều ví dụ về làm thế nào để chuyển đổi một JSON sang PDF/CSV và có thể được sử dụng trong bản JavaScript hoặc TypeScript. Các liên kết đó có thể giúp bạn: Converting json to pdf using js frameworkshttp://jsfiddle.net/hybrid13i/JXrwM/

Các vấn đề liên quan