【layui】table.exportFile 表格导出功能
/表格导出})[type]//表头和表体// 防止最后一竖列的的“操作”也导出来='操作'){// 防止“手机号”和“时间”导出后变成“#############”if(item3.title.indexOf('电话')!=-1||item3.title.indexOf('时间')!=-1||item3.title.indexOf('手机')!=-1){});});//表合计});}());//解
·

1、表格-导出点击事件
,toolbar: '#tool_renyuan_table'
,defaultToolbar: ['exports']
// 导出
table.on('toolbar(renyuan_table)', function(obj){
switch(obj.event){
case 'LAYTABLE_EXPORT':
myExportFile('renyuan_table');
break;
};
});
2、自定义exportFile
//表格导出
function myExportFile(id, data, type){
var that = this;
data = data || table.clearCacheKey(table.cache[id]);
type = type || 'xls';
var config = {}
,textType = ({
csv: 'text/csv'
,xls: 'application/vnd.ms-excel'
})[type]
,alink = document.createElement("a");
// if(device.ie) return hint.error('IE_NOT_SUPPORT_EXPORTS');
alink.href = 'data:'+ textType +';charset=utf-8,\ufeff'+ encodeURIComponent(function(){
var dataTitle = [], dataMain = [], dataTotal = [];
//表头和表体
layui.each(data, function(i1, item1){
var vals = [];
table.eachCols(id, function(i3, item3){
// 防止最后一竖列的的“操作”也导出来
if(item3.title!='操作'){
if(item3.field && item3.type == 'normal' && !item3.hide){
var content = item1[item3.field];
if(content === undefined || content === null) content = '';
i1 == 0 && dataTitle.push(item3.title || '');
// 防止“手机号”和“时间”导出后变成“#############”
if(item3.title.indexOf('电话')!=-1||item3.title.indexOf('时间')!=-1||item3.title.indexOf('手机')!=-1){
content = content+'\t';
}
vals.push('"'+ parseTempData(item3, content, item1, 'text') + '"');
}
}
});
dataMain.push(vals.join(','));
});
//表合计
layui.each(that.dataTotal, function(key, value){
dataTotal.push(value);
});
// console.log('dataTitle',dataTitle);
// console.log('dataMain',dataMain);
// console.log('dataTotal',dataTotal);
return dataTitle.join(',') + '\r\n' + dataMain.join('\r\n') + '\r\n' + dataTotal.join(',');
}());
alink.download = (config.title || 'table_'+ (config.index || '1')) + '.' + type;
document.body.appendChild(alink);
alink.click();
document.body.removeChild(alink);
};
//解析自定义模板数据
function parseTempData (item3, content, tplData, text){
var str = item3.templet ? function(){
return typeof item3.templet === 'function'
? item3.templet(tplData)
: laytpl($(item3.templet).html() || String(content)).render(tplData)
}() : content;
return text ? $('<div>'+ str +'</div>').text() : str;
}
更多推荐


所有评论(0)