Javascript関連情報

更新日:2008年02月27日

jQuery でCSVをテーブル表示

今回は、エクセルなどで作成したCSVファイルをテーブル要素へ自動出力するプラグインです。列ごとのソートもできて、CSVを読み込むだけで、自動的にグラフまで作ることも可能です。

簡単なサンプル

CSVテキストファイルはたとえば、次のようなデータですが、このCSVファイル名をcsv2tableメソッドの引数へ指定すると表になります。 (*日本語が含まれる場合は、少し手間ですが、文字コードをなるべくutf-8へ変換して使うことをお勧めします)
読み込んだCSVファイル /gm/gc/24176/file/test.txt

No.,Title,Name,Age,Yen
1,Test1,Toshiro,52,"10000 "
2,Test2,Taro,28,"80000 "
3,Test3,Shiro,12,"5000 "
4,Test4,Gonza,38,"30000"
5,Test5,Itiemon,41,"10000"
とりあえず、簡単なサンプルをみてみます。

 

 

ソースは次の通り。
<script src="./jquery-min.js"
      type="text/javascript"></script>
<script src="./jquery.csv2table.js" 
      type="text/javascript"></script>

<input 
  class   = "btn1"
  type    = "button"
  onclick = "$('#view1').csv2table('./file/test.txt');"
  value   = "Load CSV">

<!-- ここへ表が出力されます -->
<div id="view1"></div>

次に、構築完了時に呼ばれるコールバック関数onload内で CSS指定をしてみます。

 


ソースは次の通り。
<input 
  class   = "btn1"
  type    = "button"
  onclick = "
    $('#view2').csv2table('./file/test.txt',{
      onload  : function(id,op,data,ary){
        $('tr:even','#'+id).css('background','#eee')
      }
    })"
  value   = "Load CSV">

<!-- ここへ表が出力されます -->
<div id="view2"></div>

$('tr:even','#'+id).css('background','#eee')は、ここでは、idにview2が渡りますので、 $('tr:even','#view2').css('background','#eee')と同じ意味ですが、 背景色をTR行ごとに縞々にしています。

この部分を、読み下してみると、'#view2'要素内の、tr要素で、0行目から数えて偶数番目の(:even)要素のCSSで、背景色backgroundを#eeeに指定します、という意味になります。

TD方向に塗ることもできます。

 


nth-child(2n+1)はCSS3の疑似クラスで、この場合は、1つ置きにgoldになります。ちなみに、nth-childはブラウザごとに実装が異なりますが、 もちろん、jQueryではクロスブラウザに動作します。

ソースは次の通り。
<input 
  class   = "btn1"
  type    = "button"
  onclick = "
    $('#view3').csv2table('./file/test.txt',{
      onload  : function(id,op,data,ary){
        $('#'+id)           .find('td:nth-child(2n+1)').css('background','gold').end()           .find('tr:even').css('background','#ccc')
      }
    })"
  value   = "Load CSV">

<!-- ここへ表が出力されます -->
<div id="view3"></div>

$('#'+id)の後ろのfind()メソッドは、$('#'+id)で絞り込んだ要素からさらに'td:nth...'な要素を絞り込みます。 その絞り込んだ要素へ.css('background','gold')を適用してから、.end()で絞り込む前の検索結果に戻ります。

そして、再度、find()メソッドで'tr:even'な要素を絞りこんで、.css('background','#eee')を適用するという具合です。

次ページでは、引数へ指定できるオプションなどをみてみます。

  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

高橋 登史朗

Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…

続きを読む

All About Good Answers Topics

回答募集中のトピック(お題)

回答できるものを探そう Good Anwsersトップへ
今なら最大10,000円の回答キャンペーン実施中!

ビジネススタイルは、スーツの着こなしのルールを遵守しつつ、小物で個性を打ち出すのがセオリー。だからこそ、比較的自由度の高いバッグが重要だ。そこで今回は、「ブリーフケース」と「トートバッグ」という今おすすめのタイプから15点ずつアイテムをピックアップ。品質や素材が秀でているだけでなく、機能面も優れる才色兼備な逸品を厳選した。バッグを新調するだけで、不思議なほど心躍る。

人気Javascriptランキング

Powered by 価格.com

おすすめ記事

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

All About ウェブマガジン

男性向け

男のカバン完全カタログ

女性向け

パンの美味しい、素敵カフェ

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック