ES5导出数据生成文档xls或csv (2)

1.兼容IE浏览器

2.无限制数据导出

console.log(res)
									jsonArr=[];
									if(res.length !=0){
										for(var i=0;i<res.length;i++){
											 var mm=res[i].materialNumber;
											 var mn=res[i].materialname;
											 var gg=res[i].materialModel;
											 var mal='';
											 var mnal='';
											 var gal='';
												if(mm==null){
													mal='';
												  }else if(mm.indexOf(",")>-1){
													  mal=mm.replace(/,/g,'|');
												  }else if(mm.indexOf(",")>-1){
													  mal=mm.replace(/,/g,'|');
												  }else{
													  mal= mm
												  }
												if(mn==null){
													mnal='';
												  }else if(mn.indexOf(",")>-1){
													  mnal=mn.replace(/,/g,'|');
												  }else if(mn.indexOf(",")>-1){
													  mnal=mn.replace(/,/g,'|');
												  }else{
													  mnal= mn
												  }
												 if(gg==null){
													 gal='';
												  }else if(gg.indexOf(",")>-1){
													  gal=gg.replace(/,/g,'|');
												  }else if(gg.indexOf(",")>-1){
													  gal=gg.replace(/,/g,'|');
												  }else{
													  gal= gg
												  }
											jsonArr.push({
												'storageName':res[i].storageName==null ? '':res[i].storageName,
												'srcnumber':res[i].srcnumber==null ? '':res[i].srcnumber,
												'billname':res[i].billname==null ? '':res[i].billname,
												'billfnumber':res[i].billfnumber==null ? '':res[i].billfnumber,
												'costcenterName':res[i].costcenterName==null ? '':res[i].costcenterName,
												'bizdate':res[i].bizdate==null ? '':res[i].bizdate,	
												'status':res[i].status==null ? '':res[i].status,	
												'tranName':res[i].tranName==null ? '':res[i].tranName,
												'ispresent':res[i].ISPRESENT==null ? '':res[i].ISPRESENT,	
												'materialNumber':mal,	
												'materialname':mnal,
												'materialModel':gal,
												'entryqty':res[i].entryqty==null ? '':res[i].entryqty,
												'measurename':res[i].measurename==null ? '':res[i].measurename,
												'jg':res[i].jg==null ? '':res[i].jg,
												'je':res[i].je==null ? '':res[i].je,
												'entrybaseqty':res[i].entrybaseqty==null ? '':res[i].entrybaseqty,
												'basemeasurename':res[i].basemeasurename==null ? '':res[i].basemeasurename,
												'depName':res[i].depName==null ? '':res[i].depName,
												'warename':res[i].warename==null ? '':res[i].warename,
												'creatorName':res[i].creatorName==null ? '':res[i].creatorName,
												'createTime':res[i].createTime==null ? '':res[i].createTime,	
												'auditorName':res[i].auditorName==null ? '':res[i].auditorName,
												'remark':res[i].remark==null ? '':res[i].remark	
	
											})
										}
									}
									return res;
								}
//支持大批量数据导出,目前测试15万行 30列通过,导出时间约为6秒
function toLargerCSV(data){
//CSV格式可以自己设定,适用MySQL导入或者excel打开。
//由于Excel单元格对于数字只支持15位,且首位为0会舍弃 建议用 =“数值” 
	  if(data.length==0){
		  layui.layer.msg("沒有数据")
		  return
	  }
		var str = '库存组织名称,核心单据类型,单据类型,单据编码,成本中心,业务日期,状态,事务类型,是否赠品,物料编码,物料名称,规格,数量,计量单位,单价,产值,基本数量,基本计量单位,部门,仓库,建单人,建单时间,审核人,备注\n';

		for(let i=0;i<data.length;i++){
			 var materialNumber='';
			 var materialname='';
			 var materialModel='';
			 if(data[i].materialNumber.indexOf("|")>-1){//针对数值中有|的字符就转换为逗号
				 materialNumber=data[i].materialNumber.replace(/\|/g,",");
			 }else{
				 materialNumber=data[i].materialNumber
			 }
			 if(data[i].materialname.indexOf("|")>-1){//针对数值中有|的字符就转换为逗号
				 materialname= data[i].materialname.replace(/\|/g,",");
			 }else{
				 materialname= data[i].materialname
			 }
			 if(data[i].materialModel.indexOf("|")>-1){//针对数值中有|的字符就转换为逗号
				 materialModel= data[i].materialModel.replace(/\|/g,",");
			 }else{
				 materialModel= data[i].materialModel
			 }
		     str +=data[i].storageName+','+data[i].srcnumber+','+data[i].billname+','+data[i].billfnumber+','+data[i].costcenterName+','+data[i].bizdate+','+data[i].status+','+data[i].tranName+','+data[i].ispresent+','+materialNumber+','+materialname+','+materialModel+','+data[i].entryqty+','+data[i].measurename+','+data[i].jg+','+data[i].je+','+data[i].entrybaseqty+','+data[i].basemeasurename+','+data[i].depName+','+data[i].warename+','+data[i].creatorName+','+data[i].createTime+','+data[i].auditorName+','+data[i].remark+',\n';
		  }


		  if(!!window.ActiveXObject || "ActiveXObject" in window){//在IE浏览器的情况下导出
	            var blob = new Blob([decodeURIComponent(encodeURI("\uFEFF"+str))], {
	                type: "text/csv;charset=utf-8;"
	            });
	            window.navigator.msSaveBlob(blob, "产值表.csv")
	            
	        }else{//其他浏览器
	     
	            var blob = new Blob(["\uFEFF"+str], {type: 'text/csv;charset=utf-8;'});
                var link = document.createElement('a');
                link.download = '产值表.csv';
                link.href = window.URL.createObjectURL(blob);
                link.style.display = 'none';
                document.body.appendChild(link);
                link.click();  
	        }
	             
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色咖啡 Ken

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值