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…

続きを読む

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javascriptランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

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

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

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

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

知識・経験を生かして、記事を書いてみませんか?