首页 > 代码库 > jQuery Table2CSV插件(表格转CSV) 完美支持colspan和rowspan
jQuery Table2CSV插件(表格转CSV) 完美支持colspan和rowspan
table2csv:将表格转化为csv数据
参数:一个JSON对象
{
‘repeatChar‘:‘拆分单元格填充字符‘, //默认为null则将单元格值填充到拆分的每个单元格中,如果给定字符串则用给定字符串填充
‘callback‘:‘回调函数‘ //传入两个参数(csv,data),分别为csv字符串和data二维数组
}
(function($){ $.fn.table2csv=function(option){ if(option==null) option={}; if(option.repeatChar==‘‘) option.repeatChar="-"; //计算行数列数 var rows=0; //行 var cols=0; //列 this.find("tr").each(function(){ rows+=1; var tr=$(this); var n=tr.find("td,th").length; cols=Math.max(cols,n); }); //document.title=("行/列:"+rows+"/"+cols); //空数组准备 var data=http://www.mamicode.com/new Array();"tr").each(function(){ var tr=$(this); var j=0;//当前列坐标 tr.find("td,th").each(function(){ var td=$(this); var colspan=1; var rowspan=1; var value=http://www.mamicode.com/td.text();"colspan")!=null) colspan=parseInt(td.attr("colspan")); if(td.attr("rowspan")!=null) rowspan=parseInt(td.attr("rowspan")); //定位CSV数组中第一个没有数据的单元格 for(var p=0;p<data[i].length;p++){ if(data[i][p]==‘‘){ j=p; break; } } data[i][j]=value;//填充值 if(colspan+rowspan==2) return; //如果不是合并单元格,返回并继续each //填充单元格区域 var fic=i+rowspan; //alert(value+i+":"+j); for(var fi=i;fi<fic;fi++){ var fjc=j+colspan; //alert(""+j+"\r\n"+fic+":"+fjc); for(var fj=j;fj<fjc;fj++){ if((fj==j)&&(fi==i)) continue; data[fi][fj]= (option.repeatChar==null)? value :option.repeatChar; //alert(test(data)); } } }); i++; }); //填充完毕 //生成调试数据 var str=""; for(var i in data){ str+=data[i].join(","); str+="\r\n"; } if(option.callback!=null) option.callback(str,data); }; ///////////////////////////////// $.fn.csv2table=function(param){ var isarray=param instanceof Array; var data=http://www.mamicode.com/null;"<table border=‘1‘>"; for(var i=0;i<data.length;i++){ table+="<tr>"; var cells=data[i]; for(var j=0;j<cells.length;j++) table+=("<td>"+cells[j]+"</td>"); table+="</tr>"; } table+="</table>"; table+=(isarray?"<!--数组-->":"<!--字串-->"); this.html(table); }})(jQuery);
测试界面(将表格中的内容转为csv,然后再将csv生成为第二个表格):
jQuery Table2CSV插件(表格转CSV) 完美支持colspan和rowspan
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。