Skip to content

Instantly share code, notes, and snippets.

@AbrarJahin
Last active January 27, 2020 10:55
Show Gist options
  • Save AbrarJahin/22e7fdcbe1beb3827e7aee1f9d0af72f to your computer and use it in GitHub Desktop.
Save AbrarJahin/22e7fdcbe1beb3827e7aee1f9d0af72f to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Angular Js XLS</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.9.13/xlsx.full.min.js"></script>
<script type="text/javascript" src="//unpkg.com/angular-js-xlsx/angular-js-xlsx.js"></script>
</head>
<body ng-app="MyApp">
<div ng-controller="myController">
<js-xls onread="read" onerror="error"></js-xls>
<!-- <input type="file" ng-change="read" onerror="error"> -->
</div>
</body>
<script type="text/javascript">
angular.module('MyApp', ['angular-js-xlsx'])
.controller('myController', function($scope) {
$scope.read = function (workbook) {
var headerNames = XLSX.utils.sheet_to_json( workbook.Sheets[workbook.SheetNames[0]], { header: 1 })[0];
var data = XLSX.utils.sheet_to_json( workbook.Sheets[workbook.SheetNames[0]]);
console.log(headerNames);
console.log(data);
for (var row in data)
{
Object.keys(data[row]).forEach(function(key) {
console.log("Key = >" + key);
console.log("Value => " + data[row][key]);
console.log("===========================");
});
}
}
$scope.error = function (e) {
console.log(e);
}
});
</script>
</html>
@Geekays
Copy link

Geekays commented Sep 19, 2017

This works file till I log the data in the console. However, could not find a way to bind this data to the html. I converted var data to $scope.data and tried binding it as an array in the UI. But it is not working.

@JandreColoj
Copy link

in to file js create one variable bool (listData = false) and data binding in html file ng-if="listData"

$scope.read = function (workbook) {
	var headerNames = XLSX.utils.sheet_to_json( workbook.Sheets[workbook.SheetNames[0]], { header: 1 })[0];
	var data = XLSX.utils.sheet_to_json( workbook.Sheets[workbook.SheetNames[0]]);

          $timeout(function() {
               listData = true
           },1000);

	console.log(headerNames);
	console.log(data);

	for (var row in data)
	{
	    Object.keys(data[row]).forEach(function(key) {
	    console.log("Key = >" + key);
	    console.log("Value => " + data[row][key]);
	    console.log("===========================");
					});
	}
}

and success data show in html template

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment