CSV形式のデータを読み込み表示する

説明

CSV形式のテキストデータを読み込ませ表示するにはprototype.jsライブラリを利用すると簡単です。Ajax.Request()で読み込むCSV形式のテキストのURLを指定します。データが読み込まれたら、改行コードとカンマで分割します。分割された数だけ繰り返しテーブルとして表示します。
サンプルで扱っているCSVデータは、各データにはカンマが含まれず、なおかつ"(ダブルクオート)で囲まれていないものを使用しています(表1)。エクセルやデータベースから出力されるデータの場合、ダブルクオートで囲まれているので表示する際にはだぶるクオートの削除などの処理が必要になります。

表1
品名,価格,注釈
Home Basic,27090円,最低限のパッケージです
Home Premium,31290円,家庭用です
Business,39690円,ビジネス用途に
Ultimate,51240円,フルスペックのVistaです

JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>CSV形式のデータを読み込み表示する</h1>
<div id="tableData">データを読み込み中....</div>
</body>
</html>

window.onload = function(){
var msec = (new Date()).getTime();
new Ajax.Request("data.csv", {
method: "get",
parameters: "cache="+msec,
onSuccess:function(httpObj){
var text = httpObj.responseText;
var LF = String.fromCharCode(10);
var tabText = text.split(LF);
var tbl = "<table border='1'>";
for (var i=0; i<tabText.length; i++){
var cText = tabText[i].split(",");
tbl += "<tr>";
for (var j=0; j<cText.length; j++){
tbl += "<td>"+cText[j]+"</td>";
}
tbl +="</tr>";
}
tbl += "</table>";
$("tableData").innerHTML = tbl;
},
onFailure:function(httpObj){
$("tableData").innerHTML = "エラーで読み込めませんでした";
}
});
}