我是靠谱客的博主 害羞棉花糖,最近开发中收集的这篇文章主要介绍layui 表格导出兼容IE,以及文件名自命名,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、兼容IE:

layui table.js修改源代码(地址:https://github.com/sentsin/layui ): lay/module/table.js

修改:  table.exportFile 方法

/**
	 * 修复IE不能下载的问题,支持IE10以上,此处是额外增加的代码,数据读取沿用table组件原有代码,为了尽量不破坏原来的代码,故此处会显得有些冗余。
	*/
	if (device.ie && navigator.msSaveBlob) {
		var dataTitle = [], dataMain = [];
		layui.each(data, function (i1, item1) {
			var vals = [];
			if (typeof id === 'object') { //ID直接为表头数据
				layui.each(id, function (i, item) {
					i1 == 0 && dataTitle.push(item || '');
				});
				layui.each(table.clearCacheKey(item1), function (i2, item2) {
					vals.push(item2);
				});
			} else {
				table.eachCols(id, function (i3, item3) {
					if (item3.field && item3.type == 'normal' && !item3.hide) {
						i1 == 0 && dataTitle.push(item3.title || '');
						vals.push(item1[item3.field]);
					}
				});
			}
			dataMain.push(vals.join(','))
		});
		var filedata = "ufeff" + dataTitle.join(',') + 'rn' + dataMain.join('rn');
		if(fileName) {
			navigator.msSaveBlob(new Blob([decodeURIComponent(encodeURI(filedata))], {type: 'text/csv;charset=utf-8;'}),  (config.title || fileName + (config.index || '')) + '.' + type);
		}else {
			navigator.msSaveBlob(new Blob([decodeURIComponent(encodeURI(filedata))], {type: 'text/csv;charset=utf-8;'}),  (config.title || 'ajjkbb' + (config.index || '')) + '.' + type);
		}
		
		return true;
	}
	// 以下是原代码
    alink.href = 'data:'+ textType +';charset=utf-8,ufeff'+ encodeURIComponent(function(){

2、表格导出自命名

① table.exportFile添加新参数: fileName

table.exportFile = function(id, data, type, fileName){}

②table.exportFile 内部导出js修改:

if(fileName) {
	navigator.msSaveBlob(new Blob([decodeURIComponent(encodeURI(filedata))], {type: 'text/csv;charset=utf-8;'}),  (config.title || fileName + (config.index || '')) + '.' + type);
}else {
	navigator.msSaveBlob(new Blob([decodeURIComponent(encodeURI(filedata))], {type: 'text/csv;charset=utf-8;'}),  (config.title || 'ajjkbb' + (config.index || '')) + '.' + type);
}

③前段导出方法调用

$(document).on('click','#export',function(){
    var data = [];
    table.exportFile(['标题','案件类型','立案日期'], data , "xls", "文件名");
}


     

 

 

 

 

 

最后

以上就是害羞棉花糖为你收集整理的layui 表格导出兼容IE,以及文件名自命名的全部内容,希望文章能够帮你解决layui 表格导出兼容IE,以及文件名自命名所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部