使用Javascript读取CSV标头 [英] Read CSV headers using Javascript

查看:68
本文介绍了使用Javascript读取CSV标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个csv文件,其标题看起来像这样

I have a csv file with headers that look like this

header1,header2,header3,header4
value1,value2,value3,value4
value1,value2,value3,value4
value1,value2,value3,value4

我只想阅读标题,我已经尝试过了.

I just want to read the headers and I've tried.

var keys = [];
        for (var k in unemployment2) keys.push(k);

        alert("total " + keys.length + " keys: " + keys);

但是我得到的是行号.

推荐答案

因此,假设您的csv数据如下所示:

So assuming your csv data looking like this:

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....

这将读取数据并转换如下数组:

This will read the data and convert an array like this:

[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 ]....

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

This code will work when your data.txt file is one long string of comma-separated entries, with no newlines:

data.txt:

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

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

javascript:

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文件上工作,并且每组记录之间都有换行符:

The following code will work on a "true" CSV file with linebreaks between each set of records:

data.txt:

标题1,标题2,标题3,标题4,标题5值1_1,值2_1,值3_1,值4_1,值5_1值1_2,值2_2,值3_2,值4_2,值5_2javascript:

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);
   }

http://jsfiddle.net/mblase75/dcqxr/

这篇关于使用Javascript读取CSV标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆