欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端读取excel文件,不经过后台的实现方法

程序员文章站 2022-07-13 13:15:43
...

标题前端读取excel文件,不经过后台的实现方法

jsp 代码:

<script src="js/xlsx.full.min.js"></script>
	     	<div>
		     	<input  type="file" id="importExcel" name="importExcel" style="width:200px;display: inline-block;" value="导入明细"/>
		    </div>
		    <div style="margin-top: 10px;">
		        	<button class="btn btn-info" ng-click="uploadTrucksBut()">导入车辆文件</button>
		    </div>

js代码:

	var importExcel = document.getElementById('importExcel');
	var file = null;
	if(importExcel.addEventListener) 
		importExcel.addEventListener('change', handleFile, false);
	function handleFile (e) {
		var files = e.target.files;
		file = files[0];
		
	};	
	function uploadTrucksBut (){
		 var name = file.name;
	    var reader = new FileReader();
		alert(1);
	    reader.readAsArrayBuffer(file);

        
	    reader.onload = function (e) {
	    	
	        var data = e.target.result;
	        var wb;
	        wb = XLSX.read(btoa(fixdata(data)), {//手动转化
                type: 'base64'
            });
	        var persons = []; // 存储获取到的数据
	        var truckInfos = new Array() ;
	        persons = persons.concat(XLSX.utils.sheet_to_json(wb.Sheets["Sheet1"]));
			alert(1);
	        angular.forEach(persons,function(data,idx){
	      
	        });
 
	    };
	    
	};

本方法使用readAsArrayBuffer()兼容 ie11,详见 FileReader.readAsArrayBuffer()

之前使用readAsBinaryString 此方法已被W3C和FileAPI 遗弃。在ie浏览器中无法使用。