2017-01-21 2 views
-1

Je suis en train de lire un fichier csv angulaire js et je suis parvenu à cette question How to read csv file content in angular js? où il est utilisé comme directive.Mais je le soumets comme une forme dans mon contrôleur, alors comment Puis-je utiliser dans mon formulaire.Peut-on suggérer de l'aide.Merci.Comment lire un fichier csv dans angularjs

Mon code,

if($scope.partner.csv){ 
      var files = $scope.partner.csv.target.files 
      var r = new FileReader(); 
      r.onload = function(e) { 
       var contents = e.target.result; 
       $scope.$apply(function() { 
       $scope.fileReader = contents; 
       }); 
      }; 
     } 
     } 

C'est ce que j'avais essayé, quand je soumets ma forme si le fichier csv téléchargé l'action ci-dessus doit être fait.

+0

S'il vous plaît fournir plus de détails sur exactement ce que vous essayez d'accomplir comment cela devrait fonctionner – charlietfl

+0

que signifie « submittiong comme une forme dans mon controoler » signifie? pas seulement le fait que l'anglais est faux; Comment un fichier CSV se rapporte-t-il à un formulaire? – Claies

+0

Est-ce utile si vous créez un tableau à partir de votre fichier CSV? – Randy

Répondre

1

Vous pouvez utiliser le code ci-dessous pour lire le fichier csv.

<!DOCTYPE html> 
<html ng-app="" ng-controller="myCtrl"> 
<style> 
table, th, td { 
    border: 1px solid black; 
    padding:5px; 
} 
table { 
    border-collapse: collapse; 
    margin:10px; 
} 
</style> 
<body> 
<button ng-click="readCSV()"> 
Display CSV as Data Table 
</button> 
<div id="divID"> 
    <table> 
    <tr ng-repeat="x in data"> 
     <td ng-repeat="y in x">{{ y }}</td> 
    </tr> 
    </table> 
</div> 
<div> 
<table> 
</table> 
</div> 
<script> 
function myCtrl($scope, $http) { 
    $scope.readCSV = function() { 
     // http get request to read CSV file content 
     $http.get('/angular/sample.csv').success($scope.processData); 
    }; 

    $scope.processData = function(allText) { 
     // split content based on new line 
     var allTextLines = allText.split(/\r\n|\n/); 
     var headers = allTextLines[0].split(','); 
     var lines = []; 

     for (var i = 0; i < allTextLines.length; i++) { 
      // split content based on comma 
      var data = allTextLines[i].split(','); 
      if (data.length == headers.length) { 
       var tarr = []; 
       for (var j = 0; j < headers.length; j++) { 
        tarr.push(data[j]); 
       } 
       lines.push(tarr); 
      } 
     } 
     $scope.data = lines; 
    }; 
} 
</script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
</body> 
</html>