//@utf-8 (function($) { $.csv2table={ version : '0.01-beta-6', charset : 'utf-8', doc : 'http://jsgt.org/mt/01/', demo : 'http://jsgt.org/lib/jquery/plugin/csv2table/v001/test.htm', author : 'Toshiro Takahashi', lisence : 'Public Domain', loadImg :(new Image()).src='http://jsgt.org/lib/jquery/plugin/csv2table/v001/loadinfo111.gif', setting : [], data : [], _rowsAry : [], err : [] } $.fn.csv2table=function (url,setting){ var contents=$.fn.csv2table.el=this,id=this[0].id, op = $.csv2table.setting[id] = $.extend({ nowloadingImg : $.csv2table.loadImg, //Image of now loading... nowloadingMsg : 'now loading...', //Massege of now loading... removeDoubleQuote : true, // remove " of "hogehoge" row_sep : '\n', //Separator of rows. default '\n' col_sep : '\t', //Separator of cols. default '\t' onload : null, //collback event className_div : 'csv2table-div', //className className_table : 'csv2table-table', //className className_table_th : 'csv2table-table-th', //className className_table_td : 'csv2table-table-td', //className className_sortMark : 'csv2table-sortMark' //className },setting); if(op.row_sep=='\n')op.row_sep_reg='\r\n' $(contents).before('
'+op.nowloadingMsg+' ' ) $.get(url+"?"+(new Date()).getTime(),"",function(data,textStatus){ $.csv2table.data[id]=data; $(".csv2table-loading").fadeOut(); $(contents).css("display","none").html(mkTable(id,data)); setCSS(id); $(contents).fadeIn(); if($.csv2table.setting[id].onload) $.csv2table.setting[id].onload(contents,op,data); }); $.fn.csv2table.wrtTable=function(sortType,colIndex,id){ $("#"+id).html(mkTable(id,$.csv2table._rowsAry[id],sortType,colIndex)); setCSS(id); if($.csv2table.setting[id].onload) $.csv2table.setting[id].onload($("#"+id)[0],op,$.csv2table.data[id]); } function mkTable(id,data,sortType,colIndex){ var rowsAry=null; if(sortType){ $.csv2table._rowsAry[id].head = $.csv2table._rowsAry[id][0] ; rowsAry=$.csv2table._rowsAry[id]; rowsAry.shift(); rowsAry=sortwk(rowsAry,sortType,colIndex); rowsAry.unshift($.csv2table._rowsAry[id].head); } else { if(op.col_sep==','){ rowsAry=escapeStrComma(op.col_sep,op.row_sep,data,op.removeDoubleQuote); } else { rowsAry=$.csv2table._rowsAry[id]=mkArray(data,op.col_sep,op.row_sep); } } var rowlen=rowsAry.length, table=$(""); jQuery.each(rowsAry,function(i, val){ if(i==rowlen)return; var trs=(i==0)?"" var colsAry=val; var html=$("") .html( trs +colsAry.join(""+tre+trs) +tre ) .appendTo(table); }); $("th",table).each(function(i){ $(this).append( $("
\ ") .css('font-size','7px') .css('text-decoration','none') .css('color','#888') .addClass(op.className_sortMark) ) }) return table; } //// // 並べ替え // @parame dataAry 並べ替え対象配列 // @parame sortType 昇順sortA|降順sortD // @parame colIndex 数値ソート列 // function sortwk(dataAry,sortType,colIndex){ var i=colIndex; if(!dataAry)return ; if(isNaN(dataAry[0][i])){ dataAry.sort( function(a,b){ if(!a[i]) { if(!b[i])return 0; else return 1; } else if(!b[i]) { return -1; } if(""+a[i] === ""+b[i])return 0; return (sortType=="sortD")? ((""+a[i] > ""+b[i])?-1:1): ((""+a[i] > ""+b[i])?1:-1); } ) } else { dataAry.sort( function (a,b){ if(!a[i]) { if(!b[i])return 0; else return 1; } else if(!b[i]) { return -1; } if(isNaN(a[i])||isNaN(b[i])){ //$.csv2table.err.push(i+'列が数値か文字か不明です') ;return 0 }; return (sortType=="sortD")?(b[i] - a[i]):(a[i] - b[i]);//降順:昇順 } ); } return dataAry; } function escapeStrComma(col_sep,row_sep,oj,removeDoubleQuote){ var rdq=(removeDoubleQuote)?'':'"'; //mk dmy for comma in " var dmy =['-###','###-'],cnt=0,r; cnt=(function mkdmy(cnt){ if(!( oj.indexOf((dmy[0]+'comma'+cnt+dmy[1]))==-1 || oj.indexOf((dmy[0]+'rn'+cnt+dmy[1]))==-1 || oj.indexOf((dmy[0]+'wDquote'+cnt+dmy[1]))==-1 ))mkdmy( ++cnt ) else void(0) return cnt; })(cnt) var reg='(["](.|(\r\n))*?(["]$|["][,('+op.row_sep_reg+')]))', dmystr_comma=''+(dmy[0]+'comma'+cnt+dmy[1]) , dmystr_rn=''+(dmy[0]+'rn'+cnt+dmy[1]) , dmystr_wDquote=''+(dmy[0]+'wDquote'+cnt+dmy[1]) ; escape= oj.replace('""',dmystr_wDquote); escape= escape.replace( new RegExp(reg,"g"), function (after,before,index) { after= after .replace(/(\r\n)(?!$)/g,dmystr_rn) .replace(/,(?!$)/g,dmystr_comma) return after } ) //alert(escape) r=$.csv2table._rowsAry[id]=mkArray(escape,op.col_sep,op.row_sep); var b=[],rowlen=r.length,collen=r[0].length; for(var i=0;i
":"", tre=(i==0)?"":"