Stu*_*919 3 javascript csv jquery papaparse
我目前正在尝试添加一些关于我希望特定 .CSV 格式在继续使用 PapaParse 进行解析之前的描述的验证。
所以我的想法是首先检查标题,看看它们是否等于以下内容:
Extension, company, name
然后继续解析,否则我可以返回一条错误消息,说明格式错误。
所有解析都是使用 PapaParse 完成的。
Ave 对此并不满意,但下面是当前的代码:
var result = [];
$("#CSV-Upload").click(function () {
$("input[type=file]").parse({
config : {
header : true,
skipEmptyLines : true,
complete : function (results, file) {
console.log("This file done:", file, results);
var string = JSON.stringify(results['data']);
result.push(string);
console.log("CSV Array: " + string);
}
},
complete : function () {
console.log("All files done!");
}
});
$("#csv-file").val('');
});
Run Code Online (Sandbox Code Playgroud)
小智 5
如果我理解正确,您想检查标头中是否存在某个键。要使用 papa parse 来执行此操作,我建议使用streaming. 在papa parse中,概念streaming是在解析器读取数据时处理数据。
row基本上,您将检查函数返回的对象中的某些键step。查看以下代码:
var allKeyPresent = false; // Flag
Papa.parse(file, {
header : true,
skipEmptyLines : true,
step: function(row, parser){
if (!allKeyPresent) { //Only chek if flag is not set, i.e, for the first time
parser.pause(); // pause the parser
var first_row_data = row.data[0];
// Now check object keys, if it match
if (('Extension' in first_row_data) && ('name' in first_row_data) && ('email' in first_row_data)) {
//every required key is present
allKeyPresent = true;
// Do your data processing here
parser.resume();
} else{
//some key is missing, abort parsing
parser.abort();
}
} else{ // we already match the header, all required key is present
// Do the Data processing here
}
}
});
Run Code Online (Sandbox Code Playgroud)
要了解有关 papa parse 中流式传输的更多信息,请查看此。另外,请参阅文档step的配置解释部分中有关该功能的更多信息的更多信息。
我希望这有帮助。如果您有任何其他相关查询,请告诉我。
| 归档时间: |
|
| 查看次数: |
10109 次 |
| 最近记录: |