javascriptでCSVファイルを取り込む
- 2021.07.20
- 日記
.jsファイルのディレクトリを取得
simulation.jsを配置しているディレクトリを取得します。
function getOwnDir(){
var root;
var scripts = document.getElementsByTagName("script");
var i = scripts.length;
//alert(i);
while (i--) {
var match = scripts[i].src.match(/(^|.*\/)simulation.js.*$/);
if (match) {
root = match[1];
break;
}
}
return root;
}
CSVファイル読み込み
function getOwnDir と同じディレクトリに配置したCSVファイルのURLを引数filenameに渡して、CSVファイルをテキストでリターンします。
function getCSV(filename) {
// CSVファイルを文字列として取得
var srt = new XMLHttpRequest();
srt.open("GET", filename, false);
try {
srt.send(null);
} catch (err) {
console.log(err)
}
return srt.responseText
}
CSVをjsonに変換する関数
function csvToJson(csvStr, userOptions) {
if (typeof csvStr !== 'string') return null;
var options = { header : 0, columnName : [], ignoreBlankLine : true };
if (userOptions) {
if (userOptions.header) options.header = userOptions.header;
if (userOptions.columnName) options.columnName = userOptions.columnName;
}
var rows = csvStr.split('\n');
var json = [], line = [], row = '', data = {};
var i, len, j, len2;
for (i = 0, len = rows.length; i < len; i++) {
if ((i + 1) <= options.header) continue;
if (options.ignoreBlankLine && rows[i] === '') continue;
line = rows[i].split(',');
if (options.columnName.length > 0) {
data = {};
for (j = 0, len2 = options.columnName.length; j < len2; j++) {
if (typeof line[j] !== 'undefined') {
row = line[j];
row = row.replace(/^"(.+)?"$/, '$1');
} else {
row = null;
}
data[options.columnName[j]] = row;
}
json.push(data);
} else {
json.push(line);
}
}
return json;
}
上記の関数を使って以下のように処理
var fileURL = getOwnDir() + "result_table.csv";
var csvStr = getCSV(fileURL);
var jsonObj = csvToJson(csvStr,{ header : 0, columnName : ['id', 'yosan', 'hojokin'] })
console.log(jsonObj);
-
前の記事
CPIサーバでアップロードの最大サイズを変更する際にハマったこと。 2021.04.28
-
次の記事
jQuery Mobileを使ったサイト(WordPress)でリダイレクトするとURLが変わらない件 2021.08.03