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();
}
}