//@utf-8 (function($) { $.csv2table={ version : '0.02-b-1.6', updateMemo : '0.02-b-1.6 (op.labelX=="useChart")?head.slice(1):op.labelX. Added $.csv2table.reset method . Change $.fn.csv2table.wrtTable to $.csv2table.wrtTable', ver : '', 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='./img/icon-loadinfo.gif', sortDImg : (new Image()).src='./img/icon-d.gif', sortAImg : (new Image()).src='./img/icon-a.gif', setting : [], data : [], _rowsAry : [], err : [] } $.fn.csv2table= function (url,setting){ if(!setting)var setting={}; var contents=$.fn.csv2table.el=this,id=this[0].id, op = $.csv2table.setting[id] = $.extend({ url : url, nowloadingImg : $.csv2table.loadImg, //Image of now loading... nowloadingMsg : 'now loading...', //Massege of now loading... removeDoubleQuote : true, // remove " of "hogehoge" col_midasi : '0', // row_sep : '\n', //Separator of rows. default '\n' col_sep : ',', //Separator(,|\t|;) of cols. default ',' sortable : true, //col sort select : '*', //select col lists. default '*' is all cols. orderBy : null, //array of sort col. orderBy[[0,"A"]] col0color : true, //col[0] color sync jQchart line_strokeStyle onload : null, //collback function (id,op,data,ary) {} use : null, // 'jqchart:line#canvasID' 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' if(op.use){ op.use_api = op.use.split(':')[0] op.use_api_type = op.use.split('#')[0] op.use_api_box = op.use.split(':')[1].split('#')[1] } $(contents).before('
'+op.nowloadingMsg+'
' ) $.get(url+"?"+(new Date()).getTime(),"",function(data,textStatus){ $.csv2table.data[id]=data; $(".csv2table-loading").fadeOut(); $(contents).css("display","none").html( mkRowsAry(id,data)); setCSS(id); $(contents).fadeIn(); if(op.use_api=='jqchart'){ if(op.use_api_type=='jqchart:line')op.type=$.csv2table.setting[id].type='line'; else if(op.use_api_type=='jqchart:bar')op.type=$.csv2table.setting[id].type='bar'; useChart(id,op,data,$.csv2table._rowsAry[id]); } if($.csv2table.setting[id].onload)$.csv2table.setting[id].onload(id,op,data,$.csv2table._rowsAry[id]); }); $.csv2table.wrtTable=function(sortType,colIndex,id){ $("#"+id).html( mkRowsAry(id,$.csv2table._rowsAry[id],sortType,colIndex)); setCSS(id); if(op.use_api=='jqchart'){ if(op.use_api_type=='jqchart:line')op.type=$.csv2table.setting[id].type='line'; else if(op.use_api_type=='jqchart:bar')op.type=$.csv2table.setting[id].type='bar'; useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]); } if($.csv2table.setting[id].onload)$.csv2table.setting[id].onload(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]); } $.csv2table.reset=function(){ rowsAry=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,$.csv2table.data[id],op.removeDoubleQuote); $("#"+id).html( mkTable(rowsAry)); setCSS(id); if(op.use_api=='jqchart'){ if(op.use_api_type=='jqchart:line')op.type=$.csv2table.setting[id].type='line'; else if(op.use_api_type=='jqchart:bar')op.type=$.csv2table.setting[id].type='bar'; useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]); } } function orderWk(ary,sortType,colIndex){ ary.head=ary.slice(0,op.col_midasi+1) var rowsAry=ary.slice(op.col_midasi+1,ary.length) rowsAry=sortwk(rowsAry,sortType,colIndex); rowsAry=ary=ary.head.concat(rowsAry) return rowsAry } function mkRowsAry(id,data,sortType,colIndex){ var rowsAry=null,rewrite=true//zanntei if(sortType && rewrite){ rowsAry=$.csv2table._rowsAry[id]=orderWk($.csv2table._rowsAry[id],sortType,colIndex); } else { if(op.col_sep==','){ rowsAry=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,data,op.removeDoubleQuote); } else { if(op.select == '*'||op.select == ['*']||!op.select) rowsAry=$.csv2table._rowsAry[id]=mkArray(data,op.col_sep,op.row_sep); else rowsAry=$.csv2table._rowsAry[id]=mkSelectedArray(data,op.col_sep,op.row_sep,[0,2]); } if(op.orderBy){ for(var i=op.orderBy.length-1 ;i>=0;i--){ rowsAry=$.csv2table._rowsAry[id]=orderWk(rowsAry,op.orderBy[i][1],op.orderBy[i][0]) } } } var tableHtm=mkTable(rowsAry); return tableHtm; } function mkTable(rowsAry){ if(!rowsAry)return var rowlen=rowsAry.length var tdClass ; var row = rowsAry.length ; var col = rowsAry[0].length ; htm=""; //見出し行の処理 htm+= ""; for (k=0; k" + "" + "" + "" } htm+= ""; } htm+= ""; //data行の処理 for (i=eval(op.col_midasi+1); i"; } htm+= ""; } var tableHtm=document.getElementById(id) .innerHTML=""+htm+"
"; if(op.sortable) $("th",tableHtm) .css('font-size','9px') .css('font-family','Arial') .css('text-decoration','none') .css('color','#888') .addClass(op.className_sortMark) return tableHtm; } //// // 並べ替え // @parame dataAry 並べ替え対象配列 // @parame sortType 昇順A|降順D // @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=="D")? ((""+a[i] > ""+b[i])?-1:1): ((""+a[i] > ""+b[i])?1:-1); } ) } else { (sortType=="D")? dataAry.sort(function (a,b){ return (b[i] - a[i]) ;//降順 }): dataAry.sort(function (a,b){ return (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 } ) if(op.select == '*'||op.select == ['*']) r=$.csv2table._rowsAry[id]=mkArray(escape,op.col_sep,op.row_sep); else r=$.csv2table._rowsAry[id]=mkSelectedArray(escape,op.col_sep,op.row_sep,op.select) var b=[],rowlen=r.length,collen=r[0].length; for(var i=0;i