プロが教える店舗&オフィスのセキュリティ対策術

外部にあるCSVをサイトに読み込んで表示するということは可能でしょうか?
またCSVを行単位で読み込み、その値によって背景色を自動で変えるということは可能でしょうか?
JavaScript初心者です。どうかご指導宜しくお願いいたします。m<_ _>m


CSV例
------------------------
1行目 +10
2行目 -15
3行目 +5
4行目 0


表示例
-------------------------
http://farm4.static.flickr.com/3266/3116370342_2 …

値(+): 背景(青)
値(-): 背景(赤)
値(0): 背景(黒)

A 回答 (14件中11~14件)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">


<title>TEST</title>
<script type="text/javascript" src="prototype.js"></script>
<style type="text/css">
.ctype0 { background-color:#fdd; }
.ctype1{ background-color:#ddd; }
.ctype2{ background-color:#ddf; }
</style>
<body>
<div id="tb"></tb>
<script type="text/javascript">

var html ='<table border="1">', buf, data, fd=[],css;
if( buf = getFileCSV( 'test.csv' ) ) {
data = buf.split("\n");
for( var i=0, m=data.length; i<m; i++){
fd = data[i].split("\t");
css = fd[0]<0? 'ctype0':(fd[0]>0?'ctype2':'ctype1');
html+='<tr class="'+css+'">';
for( var j=0,n=fd.length; j<n; j++) html+='<td>'+fd[j]+'</td>';
html+='</tr>';
}
html+='</table>';
document.getElementById('tb').innerHTML = html;
}
function getFileCSV( fileName ){
var ret = '';
new Ajax.Request( fileName + '?d='+(new Date).getTime(), { method:"get", asynchronous : false, onSuccess:function(o){ret=o.responseText;}});
return ret;
}
</script>
    • good
    • 0

基本的には不可能です。



IE、windows環境限定でよければJScript使って
データバインドとか
 http://www.makoto3.net/document/databind/databin …
ActiveXObjectでFileSystemObjectを利用するとか
 http://msdn.microsoft.com/ja-jp/library/cc427968 …
の方法が、あることはあります。
もっとも、こんなことできるから脆弱なんでしょうけど…

その他の方法については、他の方の回答の通りです。
    • good
    • 0
この回答へのお礼

fujillinさん。いつもお世話になっておりますm<_ _>m

少なくともかなり難しい領域の事なんだということが分かってきました。
ある意味、IEの軟弱性をつくといったような、かなりディープなレベルな領域なんですね。

お礼日時:2008/12/18 18:11

JavaScriptは外部のファイルを読んだり書いたりする事は出来ない仕様に


なっています。よって、CSV形式のテキストファイルを直接読み込んで処理するのは不可能です。
一番簡単な解決方法は、これです。
 CSV形式にこだわらず、データをJAVASCRIPTで記述した下記の様な外部テキストファイルとして、<SCRIPT>タグで読み込む
(外部data.jsファイル)
data = [10,-15,5,0];
<script src="data.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
for(i=0;i<data.length;i++){
alert (data[i]);
/* 背景色を変える処理 */
}
// -->
</script>

他にも、JSONPとかAJAXを使うとか、あるいはサーバーサイドのプログラム
を作るとか、目的によって様々な外部ファイル取得の方法があります。
    • good
    • 0
この回答へのお礼

yyr446さんご回答ありがとうございます。
jsファイルだと相性がいいんですね!基本に戻るということですね!!

CSVにこだわってはいないんですが、データベースをエクセルで作成しますので、できればエクセルから直接出力できる形式からだと理想的なんですが・・・それでもCSVとたいして変りはないですかね・・・・

お礼日時:2008/12/18 17:55

Web サーバ上で行いたいのでしょうか?


それは難しいと思います。(普通はサーバサイドの言語を使います。)
クライアント限定なら
http://q.hatena.ne.jp/1169003191
あたりが参考になりそうです。
    • good
    • 0
この回答へのお礼

ちょっとまだ私のレベルには、リンクの説明を理解するのは難解なようです(汗
すいませんm<_ _>m

お礼日時:2008/12/18 17:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!