forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | <!DOCTYPE html> | ||
|  | <!-- sheetjs (C) 2013-present  SheetJS http://sheetjs.com --> | ||
|  | <!-- vim: set ts=2: --> | ||
|  | <html ng-app="s5s"> | ||
|  | <head> | ||
|  |   <title>SheetJS + AngularJS</title> | ||
|  |   <!-- Angular --> | ||
|  |   <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script> | ||
|  | 
 | ||
|  |   <!-- SheetJS library --> | ||
|  |   <script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js"></script> | ||
|  |   <script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script> | ||
|  | </head> | ||
|  | <body> | ||
|  | <pre> | ||
|  | <b><a href="http://sheetjs.com">SheetJS + AngularJS demo</a></b> | ||
|  | 
 | ||
|  | The core library can be used as-is in AngularJS applications. | ||
|  | The <a href="https://docs.sheetjs.com">Community Edition README</a> details some common use cases. | ||
|  | We also have some <a href="http://sheetjs.com/demos/">more public demos</a> | ||
|  | 
 | ||
|  | This demo shows: | ||
|  | - $http request for XLSX file and scope update with data | ||
|  | - HTML table using ng-repeat | ||
|  | - XLSX table export using `XLSX.utils.table_to_book` | ||
|  | 
 | ||
|  | <a href="https://sheetjs.com/pres.xlsx">Sample Spreadsheet</a> | ||
|  | 
 | ||
|  | The table has hardcoded fields `Name` and `Index`. | ||
|  | 
 | ||
|  | </pre> | ||
|  | 
 | ||
|  | <div ng-controller="sheetjs"> | ||
|  | 
 | ||
|  | <table id="s5s-table"> | ||
|  |   <tr><th>Name</th><th>Index</th></tr> | ||
|  |   <tr ng-repeat="row in data"> | ||
|  |     <td>{{row.Name}}</td> | ||
|  |     <td>{{row.Index}}</td> | ||
|  |   </tr> | ||
|  | </table> | ||
|  | 
 | ||
|  | <button id="exportbtn">Export Table</button> | ||
|  | 
 | ||
|  | </div> | ||
|  | 
 | ||
|  | <script> | ||
|  | var app = angular.module('s5s', []); | ||
|  | app.controller('sheetjs', function($scope, $http) { | ||
|  |   $http({ | ||
|  |     method:'GET', | ||
|  |     url:'https://sheetjs.com/pres.xlsx', | ||
|  |     responseType:'arraybuffer' | ||
|  |   }).then(function(data) { | ||
|  |     var wb = XLSX.read(data.data, {type:"array"}); | ||
|  |     var d = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); | ||
|  |     $scope.data = d; | ||
|  |   }, function(err) { console.log(err); }); | ||
|  | }); | ||
|  | exportbtn.addEventListener('click', function() { | ||
|  |   var wb = XLSX.utils.table_to_book(document.getElementById('s5s-table')); | ||
|  |   XLSX.writeFile(wb, "export.xlsx"); | ||
|  | }); | ||
|  | </script> | ||
|  | <script type="text/javascript"> | ||
|  | /* eslint no-use-before-define:0 */ | ||
|  |   var _gaq = _gaq || []; | ||
|  |   _gaq.push(['_setAccount', 'UA-36810333-1']); | ||
|  |   _gaq.push(['_trackPageview']); | ||
|  | 
 | ||
|  |   (function() { | ||
|  |     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | ||
|  |     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
|  |     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | ||
|  |   })(); | ||
|  | </script> | ||
|  | </body> | ||
|  | </html> |