如何使用JavaScript从* .CSV文件读取数据?

我的csv数据如下所示:

标题1,标题2,标题3,标题4,标题5,值1_1,值2_1,值3_1,值4_1,值5_1,值1_2,值2_2,值3_2,值4_2,值5_2…。

您如何使用Javascript读取此数据并转换为这样的数组?

[heading1:value1_1,heading2:value2_1,heading3:value3_1,heading4:value4_1,heading5:value5_1],[heading1:value1_2,heading2:value2_2,heading3:value3_2,heading4:value4_2,heading5:value5_2]

....

我已经尝试过此代码,但是没有运气!:

<script type="text/javascript">

var allText =[];

var allTextLines = [];

var Lines = [];

var txtFile = new XMLHttpRequest();

txtFile.open("GET", "file://d:/data.txt", true);

txtFile.onreadystatechange = function()

{

allText = txtFile.responseText;

allTextLines = allText.split(/\r\n|\n/);

};

document.write(allTextLines);<br>

document.write(allText);<br>

document.write(txtFile);<br>

</script>

回答:

在提醒我有效的CSV文件中可能出现的所有“特殊情况”(例如转义引号)之前,我都采用了这种解决方案。我将答案留给那些想要快速又脏的东西的人,但我建议使用Evan的答案以确保准确性。


当您的data.txt文件是一个由逗号分隔的长字符串且没有换行符时,此代码将起作用:

data.txt:

 heading1,heading2,heading3,heading4,heading5,value1_1,...,value5_2

javascript:

$(document).ready(function() {

$.ajax({

type: "GET",

url: "data.txt",

dataType: "text",

success: function(data) {processData(data);}

});

});

function processData(allText) {

var record_num = 5; // or however many elements there are in each row

var allTextLines = allText.split(/\r\n|\n/);

var entries = allTextLines[0].split(',');

var lines = [];

var headings = entries.splice(0,record_num);

while (entries.length>0) {

var tarr = [];

for (var j=0; j<record_num; j++) {

tarr.push(headings[j]+":"+entries.shift());

}

lines.push(tarr);

}

// alert(lines);

}

以下代码将在“真” CSV文件上工作,每组记录之间都有换行符:

data.txt:

heading1,heading2,heading3,heading4,heading5

value1_1,value2_1,value3_1,value4_1,value5_1

value1_2,value2_2,value3_2,value4_2,value5_2

javascript:

$(document).ready(function() {

$.ajax({

type: "GET",

url: "data.txt",

dataType: "text",

success: function(data) {processData(data);}

});

});

function processData(allText) {

var allTextLines = allText.split(/\r\n|\n/);

var headers = allTextLines[0].split(',');

var lines = [];

for (var i=1; i<allTextLines.length; i++) {

var data = allTextLines[i].split(',');

if (data.length == headers.length) {

var tarr = [];

for (var j=0; j<headers.length; j++) {

tarr.push(headers[j]+":"+data[j]);

}

lines.push(tarr);

}

}

// alert(lines);

}

以上是 如何使用JavaScript从* .CSV文件读取数据? 的全部内容, 来源链接: utcz.com/qa/424350.html

回到顶部