解析Excel表格的内容

/**
* excel批量导入数据,解析,校验,
*/

var wb;//读取完成的数据
var rABS = false; //是否将文件读取为二进制字符串

//function importExcel(obj) {//导入
$uploadfile = {
		// 
	    importExcel:function(objs) {
	    	var obj = objs[0];
	    	if(!obj.files) {
	            return;
	        }
	        const IMPORTFILE_MAXSIZE = 1*1024;//这里可以自定义控制导入文件大小
	        if(obj.files[0]){//上传文件判空
	        	var suffix = obj.files[0].name.split(".")[1]
    	        if(suffix != 'xls' && suffix !='xlsx'){
    	            alert('导入的文件格式不正确!')
    	            return
    	        }
    	        if(obj.files[0].size/1024 > IMPORTFILE_MAXSIZE){
    	            alert('导入的表格文件不能大于1M')
    	            return
    	        }	
	        }else{
	        	swal("请先选择要导入文件")
	        }
	        var f = obj.files[0];
	        var reader = new FileReader();
	        reader.onload = function(e) {
	            var data = e.target.result;
	            if(rABS) {
	                wb = XLSX.read(btoa(fixdata(data)), {//手动转化
	                    type: 'base64'
	                });
	            } else {
	                wb = XLSX.read(data, {
	                    type: 'binary'
	                });
	            }
	            //wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
	            //wb.Sheets[Sheet名]获取第一个Sheet的数据
	          //  document.getElementById("demo").innerHTML= JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
				
				//var objList = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));
				//完整数据
				var objList = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) 
				//只包含订单号
				var codesList = new Array();
				for(var i = 0;i < objList.length;i++){
					codesList.push(objList[i]);
				}
				var failcodes = new Array();
				$.ajax({
					type : "post",
					contentType : 'application/json',
					url : context + '/xxx.json',
					data : JSON.stringify(codesList),
					dataType : 'json',
					success : function(data) {
						if (data != null && data.state == 200) {
							swal({
								title : "操作成功!",
								type : "success"
							});
							$("#fileUpload").val("");
							$voucherCenter.czQueue(currentIndex);
							$('#presellRemarks').fadeOut();
						}else{
							swal({
								title : "操作失败!",
								type : "error"
							});
						}
					} 
				});
			};
	        if(rABS) {
	            reader.readAsArrayBuffer(f);
	        } else {
	            reader.readAsBinaryString(f);
	        }
	    },	
};


function fixdata(data) { //文件流转BinaryString
    var o = "",
        l = 0,
        w = 10240;
    for(; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
    o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
    return o;
}
html导入js文件:
<script src="../js/xlsx.full.min.js"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值