使用JavaScript读取*.csv文件

Reading *.csv file using JavaScript

本文关键字:csv 文件 读取 JavaScript 使用      更新时间:2023-09-26

我有一个csv文件,它具有以下数据格式:

2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,
42540528726795050063891204319802818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0
2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff:ffff,
42540529360620350178005905068154421248,42540529439848512692270242661698371583,SG,,,1.3667,103.8000,,0,0

我只想分析该记录的第一个逗号(IPv6地址)和lat/long(第一条记录中的36.0000138.0000)值之后的项。

如何使用JavaScript/jQuery来完成此操作?

使用split方法将字符串转换为数组,然后根据需要对其进行迭代。

var csv = "2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,4254052872679505006389120431980'n2818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0"; 
var myArray = csv.split("'n");//You should know what kind of new line your csv is using
myArray.map(function (e) { //Applies this function over each element of myArray that is each line of your csv
 var line = e.split(","); //Turn the comma separated string into an array
 return "The second element is: " + line[1]; //Do what you need
});

在任何语言中都是如此。首先打开文件。逐行阅读。拆分逗号上的每一行。使用数组的索引可以获得所需的值。

jQuery.get('file.csv', function(data) {
   alert(data); // this is a line
   var tempArray = data.split(','); // array of data
   for(var i = 0; i < tempArray.length; i++)
   {
       console.log(tempArray[i]); // probably index 1 is your IPv6 address.
   }
});

或者只使用CSV库,我建议使用PapaParse(浏览器)或BabyParse(NodeJS)

以下是您的操作:

$.ajax({
    type: "GET",
    url: "data.csv",
    success: function (data) {
        var data = Papa.parse(data);
        var output = {
            "IPv6" : data.data[0][1],
            "coordinates" : [data.data[1][5], data.data[1][6]]
        } /* -> These are the values you're looking for! */
    }
});

因为我无法演示AJAX(由于跨域脚本问题),我将在下面演示success函数!


Demo

var data = '2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,'+ "'n" +
'42540528726795050063891204319802818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0'+ "'n'n" +
'2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff:ffff,'+ "'n" +
'42540529360620350178005905068154421248,42540529439848512692270242661698371583,SG,,,1.3667,103.8000,,0,0';
var success = function (data) {
    var data = Papa.parse(data);
    return output = {
        "IPv6" : data.data[0][1],
        "coordinates" : [data.data[1][5], data.data[1][6]]
    }
}
document.body.innerHTML = '<pre>' + JSON.stringify(success(data), null, 2) + '</pre>';
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>