2016-05-26 15 views
5

2の角度2ウェブサイトからデータテーブルを作成しました。今では、私のjsonデータをPDFにエクスポートしたいと思い、角度2のフレームワークを使用して優れています。私のjsonデータをpdfにエクスポートするには、角度2を使ってExcelしてください

私に提案をしてもらえますかあなたが持っているなら、どのようにそのリンクを達成することができますか?

よろしく

+0

プラグインを使用しますか? – WorkWe

+0

https://medium.com/@darilldrems/angularjs-export-html-table-to-pdf-excel-or-doc-formats-bb741d06dfec#.ll3d5jtlc これはあなたが探しているものかもしれません。 そうでなければ、要求を介してphpのようなものにデータをスヌーズし、そこで処理することができます。 – SeRu

答えて

0

JSONからPDFへの変換にjsPDFを使用してください。

および JSONから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

angular 2彼は言った... –

0

たぶん、あなたは、PDF/CSVにJSONを変換するとJavaScriptまたはTypeScriptネイティブで使用することができる方法の例がたくさんあり、あなたのdata-tableJSON形式のオブジェクトにエクスポートする方法を探す必要があります。 これらのリンクはあなたを助けます: Converting json to pdf using js frameworkshttp://jsfiddle.net/hybrid13i/JXrwM/

関連する問題