2017-03-02 3 views
0

Nach dem Ausprobieren fast jeder Frage zu SO, Ich bekomme es immer noch nicht.Exportieren nach CSV im angegebenen Format

HTML Datei:

<li><a ng-click="exportToCsv('#total');"> 
<i class="fa fa-file-o mr-right7"></i>Export to CSV</a></li> 

Controller-Datei:

$scope.exportToCsv=function(tableId){ // ex: '#my-table' 
      $scope.exportHref=Csv.tableToExcel(tableId,'List'); 
      $timeout(function(){location.href=$scope.exportHref;},100); 

Und meine Funktion in der Steuerung Datei selbst.

gModule.factory('Csv',function($window){ 
     var uri='data:text/comma-separated-values;base64,', 
      template='<table>{table}</table>', 
      base64=function(s){return $window.btoa(unescape(encodeURIComponent(s)));}, 
      format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){return c[p];})}; 

     return { 
      tableToExcel:function(tableId,worksheetName){ 
       var table=$(tableId), 
        ctx={worksheet:worksheetName,table:table.html()}, 
        href=uri+base64(format(template,ctx)); 
       return href; 
      } 
     }; 
}); 

Ich brauche die Daten in der Tabelle im CSV-Format zu exportieren, aber ich bin den ganzen HTML-Code statt zu bekommen.

Ich soll nur in diesem Format geändert werden. Bitte führen. Vielen Dank für Ihre Hilfe.

Antwort

0

Es ist im Allgemeinen am besten nicht zu eigene Rolle zu rollen, wenn es um bereits vorhandene Formate geht. Es gibt viele Schwierigkeiten, die bei CSV-Dateien nicht sofort offensichtlich sind, wie Delimiter, Escaping, Nullen, die Unicode-Stückliste und andere. Verwenden Sie eine vorhandene Bibliothek, die bereits alle Randfälle behandelt hat.

Ich würde empfehlen, Blick auf ng-csv, die tun, was Sie brauchen.