jQuery Table2CSV外掛程式(表格轉CSV) 完美支援colspan和rowspan

來源:互聯網
上載者:User

標籤:blog   http   io   java   ar   for   資料   sp   div   

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=new Array();for(var i=0;i<rows;i++){var line=new Array();for(var j=0;j<cols;j++)line.push(‘‘);data.push(line);}//資料填充var i=0;//當前行座標this.find("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=td.text();if(td.attr("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=null;if(isarray)//數組直接用data=param;else{//csv字串則轉為數組data=new Array();var lines=param.split(‘\r\n‘);for(var i=0;i<lines.length;i++){ var cells=lines[i].split(‘,‘);data.push(cells);}}var table="<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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.