HTML5のFile APIを使ってローカルのCSVファイルを取り込み、加工できる状態にするスクリプトです。
下記のようなカンマ区切りのファイルをローカルに置き、ボタンを押して読み込んでください。
A,B,C
1000,2000,3000
(拡張子は.csvでお願いします。)
ボタンとエラーなどの情報を出力するHTMLを配置します。
<input type="file" name="file" id="demo_file">
<div id="demo_info">エラーを出力div>
<div id="demo_data">ここにデータを出力div>
以下はHTML5のファイル読み込みの処理です。
var file = document.getElementById('demo_file');
var result = document.getElementById('demo_info');
// HTML5 のFile APIに対応している場合
if(window.File && window.FileReader && window.FileList && window.Blob) {
function loadLocalCsv(e) {
// ファイルデータ取得
var fileData = e.target.files[0];
// CSVファイルチェック
if(!fileData.name.match('.csv$')) {
alert('CSVファイルを選択してください');
return;
}
// ファイル読み込み
var reader = new FileReader();
// ファイル読み込みに成功時、カンマ区切りを配列に加工
reader.onload = function() {
var cols = reader.result.split('\n');
var data = [];
for (var i = 0; i < cols.length; i++) {
data[i] = cols[i].split(',');
}
createView(data);
}
// ファイル読み込みを実行
reader.readAsText(fileData);
}
file.addEventListener('change', loadLocalCsv, false);
} else {
file.style.display = 'none';
result.innerHTML = 'File APIに対応したブラウザでご確認ください';
}
そして以下は、jQueryで描画をする処理の例です。
function createView(data) {
// 挿入するHTMLを作成 jquery
insert ='';
for (var i = 0; i < data.length; i++) {
insert +='';
for (var j = 0; j < data[i].length; j++) {
insert += '' + data[i][j] + '';
};
insert += '';
};
$("#demo_data").html(insert);
}
実行すると以下になります。
エラーを出力
ここにデータを出力