我正在尝试读取角度js中的csv文件,我通过了这个问题How to read csv file content in angular js?,它被用作指令。但是我将它作为一个表单提交给我的控制器,所以我怎么能用到我的形式。任何人都建议帮忙。谢谢。
我的代码,
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;
});
};
}
}
这是我曾经尝试过的,当我提交我的表格时,如果上传了csv文件,则应该完成上述操作。
答案 0 :(得分:2)
您可以使用以下代码来读取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>