HTML5というもののHTMLは以下の二行で、他はJavaScriptになります。
また、以下のサンプルはjQueryも利用しています。
まずはinputするボタンを設置します。
上記のボタンを押してCSVファイルを取り込みます。(ファイルはサーバにアップロードはされません。)
HTMLはこちら。
<input type="file" name="select" id="demo_btn"> <div id="demo_result"></div>
読み込ませるCSVのサンプルとして以下のようなファイルを想定しています。
ID,種類,商品,金額,評価 1,PC周辺,マウス,5000,A 2,PC周辺,マウス,6000,B 3,PC周辺,キーボード,2500,B 4,PC周辺,キーボード,8000,A
JSは以下のようになります。
// 読み込みボタンがchangeになったら実行 var read_btn = document.querySelector("#demo_btn"); read_btn.addEventListener("change", file_read, false); function file_read(event) { // 読み込まれたファイルの情報をセット var file = event.target.files[0]; var type = file.type; //winの場合text/csvにならない場合があるため名前でチェック var name = file.name; var pattern = '.csv'; // csvファイルのチェック if(name.indexOf(pattern) > -1){ // readerオブジェクトを作成 var reader = new FileReader(); // ファイル読み取り reader.readAsText(file); // 読み込まれたファイルデータを渡す reader.onload = function(e) { make_view(e.target.result); }; // 読み込みに失敗した場合 reader.onerror = function() { alert("ファイルが読み取れません"); }; } } //csvデータでHTMLを組む function make_view(csvdata) { //改行ごとに配列にする var tmp = csvdata.split("\n"); //結果を格納するHTMLの開始 var result_html = '< div id="demo_data" >'; // カンマを分解する var data = []; for (var i = 0; i < tmp.length; i++) { //1行ずつカンマ区切りで配列にし、新たに配列に入れる data[i] = tmp[i].split(","); //HTMLを整形する result_html += "< ul >"; for (var j = 0; j < data[i].length; j++) { result_html += "< li >" + data[i][j] + ""; } result_html += "< /ul >"; } //結果を格納するHTMLを閉じる result_html += "< /div >"; //指定のIDへ要素を挿入する $("#demo_result").append(result_html); }