• ベストアンサー

CSVからテーブルに書き出すときに条件をつけたい

こんにちは! CSVファイルをPHPとHTMLタグを使ってWEBブラウザで表示しようとしています。 CSVデータを読み込んで、テーブルを表示し線の色や太さを変えるところまではできたのですが、 セルに格納されるデータを判断して、セルの背景色を指定したり文字に色を指定したりすることは可能でしょうか? それともJSPでJAVAにしたほうが容易に実現できるでしょうか? 実際にどのようなロジックか教えていただけたら嬉しいです。 当方PHPに関しては初めて一週間もたっていないほどの超初心者です。JSPに関しては仕事で作ったりしているので多少のことはわかります。 それではよろしくお願いいたします!

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

スタイルシートと連携させれば簡単です。 style=”color:' .$color.' という具合にtdでもaタグでも好きなものにデータで判断した$colorを割り付ければいいでしょう。 もっとおしゃれにやるならhead内にcssを宣言して選択したいclassを作っておいて、実際のタグの時に<td class='.$class.'>と行った風にすれば、文字や背景その他を一気に切り替えられます。

mocmocc
質問者

お礼

お礼が遅れてしまい大変申し訳ありませんでした↓ なるほど、スタイルシートと併用するとデザインにもこだわれそうですね…。どうもありがとうございました!

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 不可能可能というなら可能です。 が、データをどのように持っているか不明なので詳しく書けませんが、 JSPがおわかりになるのであれば想像つくと思います。 $line配列に1行分のCSVが入っているとしたら、色とか変更したい部分の 配列のデータを読み込んでif等で条件つければよいのでないでしょうか? print "<tr><td>"; if ( $line[0] == "0" ) { print "<span style=\"font-weight:bold;\">{$line[0]}</span>"; } else { print "<span style=\"color:#0000ff\">{$line[0]</span>"; } print "</td></tr>"; 例えば上の例ですと最初の要素が0であった場合は太文字にて0を表示しています。 それ以外の文字は通常の太さで青文字になっています。 わかっていらっしゃるとは思いますが、 JSPを使おうがPHPを使おうがPerlを使おうが、色を変えたりというのは 最終的にHTMLのお仕事なので何を使ったら簡単であるとかは無いと思います。 (ファイルを読んだりとかは差がありますが)

mocmocc
質問者

お礼

なるほど!そうゆう書き方があるんですね。(本当に初心者ですみません…) できるところまでやってみようと思います、どうもありがとうございました!

関連するQ&A

  • jquery.csv2table.jsのテーブル

    CSVの会員名簿を読み込み、表にしてWEBに表示する為にjquery.csv2table.jsを使った こちらのサイトを参考にさせて頂きました。 http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm CSVを読み込み、表示は成功したのですが。 もともとのCSVデータが横長に項目が多い為 表示されるテーブルは横長の表となってしまいます。 出来れば一行をセルの結合で2段にまとめて表示したいと思っています。 <td colspan="2"><td rowspan="2">を使って [1]はココに表示[2]はココに表示するみたいにテンプレ化して表示できればと思っていますが セルの背景色は変更できてもセルの場所を任意に変更できません やはりそういった事は難しいのでしょうか どなたか詳しい方、教えて頂けますと幸いです。 よろしく願い致します。

  • 【Jquery】csv2tableを使ってcsvを呼び出した表について

    JQueryのcsv2tableをつかってcsvを表に吐き出ししているものを Webに設置しています。 表示する際に、csvの0列目と1列目と3列目だけを表示させられるように下記のようなタグをいれています。 <input class = "btn1" type = "button" onclick = "$('#view54').csv2table('./data/Book12-utf8.csv',{ select : [0,1,3] });" value="Run select:[0,1,3]"> <div id="view54"></div> 参考:http://jsgt.org/lib/jquery/plugin/csv2table/v002/test-tm.htm#nview54 ここに、下記タグのように、偶数行だけ色を変えるよう指定したいのですがうまくいきません。 <input class = "btn1" type = "button" onclick = " $('#view2').csv2table('./test.txt',{ onload : function(id,op,data,ary){ $('tr:even','#'+id).css('background','#eee') } })" value = "Load CSV"> ここにある    onload : function(id,op,data,ary){ $('tr:even','#'+id).css('background','#eee') } が必要と思い、 <input class = "btn1" type = "button" onclick = "$('#view54').csv2table('./data/Book12-utf8.csv',{ select : [0,1,3]     onload : function(id,op,data,ary){ $('tr:even','#'+id).css('background','#eee') } });" value="Run select:[0,1,3]"> としたのですが、こうするとcsvが表示されなくなります。 おそらく書き方がどこかおかしいと思うのですが、どこがおかしいか教えてください。

    • ベストアンサー
    • AJAX
  • CSVをエクセルの指定の位置に

    CSV出力したデータをエクセルで読み取るときに エクセルの指定のセルに指定の項目が入るようにしたいのですがどうすればいいのでしょうか? CSVデータをそのまま読み込むと項目が並んで表示されてしまいます。 エクセルで作ったフォーマットにCSVデータを反映させて印刷したいのです。

  • PHP+CSVを使った一覧表示&詳細表示をするには?

    PHPは全くの素人でどのようにやったらよいかわかりません。 fgetcsvは何となくわかって単純なCSVデータを表示はできたのですが、そのデータを使って一覧表示では、データの主要部分を表示させ、『詳細』はこちらを選択すると、選択した1つのデータの主要部を含めた残りのデータを表示させたい。 ***CSVデータ例**** Aさん,20代,男性,映画鑑賞,コメント,写真または画像 Bさん,30代,男性,スポーツ,コメント,写真または画像 ***HTML一覧表示例*** ┌────┬───┬──┬────┐ │ 【詳細】│20代│男性│映画鑑賞│ ├────┼───┼──┼────┤ │ 【詳細】│30代│男性│スポーツ│ └────┴───┴──┴────┘ ***HTML詳細表示*** 詳細を選択されたデータのみの全データをテーブル内のの指定されたセルに配置したい。 こんな事をしたいと思うのですが、簡単な方法はないでしょうか?お知恵をお貸しください。

    • ベストアンサー
    • PHP
  • csvファイルのデータを変数として取込むには?

    javascriptは1年生です^^ データバインドを利用して、テーブルにデータを表示しています。 document.write("<object id='setData' classid='clsid:333C7BC4-460F-11D0-BC04-0080C7055A83'>"); document.write("<param name='DataURL' value='setdata.csv'>"); document.write("<param name='UseHeader' value='true'>"); document.write("</object>"); document.write("<table border='1' datasrc='#setData'>"); document.write("<tr>"); document.write("<td><span datafld='data1'></span></td>"); とこんな感じで続くのですが、csvファイルのデータには、セル幅や背景色等の設定値も含まれています。 これらのデータは表示用のデータではないので、変数として取込まなければなりません。 普通なら、bodyタグの中に、 <input type="hiden" datafld="optionData1"> と書いて、そこからjavascriptで取込むことは可能ですが、document.writeを使うとbodyタグの中が書き換わってしまうので使えません。 (csvファイルの1行分のデータを、HTMLのテーブルで表示する時には、4行~6行と行数が変動するので、予めテーブルをbodyタグの中に書いておくことが出来ません。テーブル行数はスクリプト内で決定するので。なのでbodyタグの中は空でオールjavascriptでHTMLを生成しています) もう一つの方法はフレームを使って、parentで、データを送ることも考えたのですが、もっとスマートな方法はないでしょうか??

  • テーブルの高さ幅の固定方

    現在、 JSPによりDBから読み込んだデータを HTMLのテーブルに表示しようとしているのですが、 データはTDの幅"WIDTH"以上のデータが来ます。 このような中で、TDに高さ"HEGHT"を指定しているのですが、 セル内で改行され高さがテーブル内で不揃いとなってしまいます。 この様な場合、高さをそろえる為にはどの様にすればいいのでしょう。 データを予め短くするしかないのでしょうか? ご存知の方がいらっしゃったら宜しくお願い致します。

    • ベストアンサー
    • HTML
  • CSVファイルのダウンロード

    <環境> PHP4.3.2 Windows2000 PostgreSQL RedHat Linux <求めていること> DBのデータをCSVファイルに書き出し、 ダウンロードボタン押下で ダイアログがアップしファイル保存ディレクトリ選択、保存。 <現在のソース> サーバーにtest.csvファイル作成後、 現在HTMLでダウンロードボタン押下でdownload.phpを呼び出し <input type=button value="ダウンロード" onClick="location.href='download.php'"> ---------------- download.php ------------------- <?php // 1.ディレクトリ指定 //$filename="/test/test.csv"; // 2.ディレクトリ指定なし $filename = "test.csv"; header("Content-disposition: attachment; filename=$filename"); header("Content-type: application/octet-stream"); ?> ---------------- download.php ------------------- 現在、 1番のディレクトリ指定だと downloadというファイルがダウンロードされるダイアログがアップし ダウンロードされます。 2番のディレクトリ指定なしだと もちろん空のtest.csvファイルがダウンロードされます。 実現したいのは/test/test.csvのファイルをダウンロードすることです。 色々なサイトで探してみて試しているのですが 初心者なもので、行き詰まってしまいました。 申し訳ありませんが ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • カテゴリ絞込みのテーブル表示の仕方(PHPのCSVデータベース)

    初心者な質問すみません。 CSVのデータベースからPHPでID別にカテゴリ表示されるのを作りたいのですが、考えているのはフレームひとコマにデータを表示して3列並べると改行して並べていくのを作りたいのですが 全部一列で並んでしまいます・・・ どのようなタグを使えばいいかわかる方いらっしゃいましたらお願いします。  □□□  □□□  □□  ↑ 上手く書けませんがこんな感じにしたいんです。

    • 締切済み
    • PHP
  • C# csvでセル内で改行するには

    C# csvでセル内で改行するには お世話になっております。 C#でYahoo商品データのcsvを作るプログラムを作っております。 サイズとカラーの項目が一つのセルに格納する仕様になっています。 以下の用にセル内で改行する様にしたいのですが 参考になるページが無く困っております。 色 赤 青 黄 サイズ 23 24 25 ご存知の方おりましたらよろしくお願いいたします。

  • csv形式のファイルをダウンロードさせたいのですが。

    はじめまして。MySQLとJSPを用いて、サイトページを構築する勉強をしているものです。まだ初心者ですが、行き詰まったので、是非教えていただきたいです。 現在、データベースに登録されているテーブルをcsv形式のファイルとしてダウンロードできるような仕組を考えているのですが、いい方法が思い付きません。そのページでは毎回選択されたテーブルを表示させているのですが、そこにそのテーブルのcsvファイルをダウンロードできるようにしたいのです。 select * into outfile ~を使用して、csv形式を作成したものをHTMLタグを使用してダウンロードするといった方法では何が足りないでしょうか?? ちなみにこれでは、select * into outfileで一度指定したファイルを作成してしまえば、既に存在するファイルとして新たに書き込めなくなるんではないかと既に困っています。 是非、教えていただきたいと思っています。よろしくお願いします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう