gpt4 book ai didi

javascript - 在javascript中读取CSV文件时如何处理空行

转载 作者:行者123 更新时间:2023-11-30 09:33:24 29 4
gpt4 key购买 nike

我在我的 MVc 项目中使用 KnockoutJS 来加载一个 csv 文件并为导入机制提供一个简单的验证

工作流程如下:

  • 用户选择 CSV 文件(提供示例)。
  • 用户点击一个按钮(呜呜...)。
  • 客户端代码获取 CSV、解析它并将其加载到 KnockoutJS 数组中。一切正常,完美,我可以上传文件,但问题是我的代码加载了 csv 文件中的空行,我不希望用户在导入文件之前手动删除空行

这是一个 csv 行的例子:

Account_id,External_id,Amount,Transaction_Date,Office_date,Bank,Receipt_nbr,Type,statement,receipt,

0559394,,5,6/20/2017,7/7/2017,Cash,1729002903597,PNL,172900290,3597,

0099952,,19,6/20/2017,7/7/2017,Cash,1729002903653,PNL,172900290,3653,

,,,,,,,,,,

,,,,,,,,,,

,,,,,,,,,,

这里是我用来上传文件的代码:

$('#lnkUpload').click(function () {
var FileToRead = document.getElementById('UserFile');
if (FileToRead.files.length > 0) {
var reader = new FileReader();
// assign function to the OnLoad event of the FileReader
// non synchronous event, therefore assign to other method
reader.onload = Load_CSVData;
// call the reader to capture the file
reader.readAsText(FileToRead.files.item(0));
}
self.userModel.removeAll();

});

function Load_CSVData(e) {
self.userModel.removeAll();


CSVLines = e.target.result.split(/\r\n|\n/);
$CSVLines = CSVLines.slice(1);
$.each($CSVLines, function (i, item) {

var element = item.split(","); // builds an array from comma delimited items
var LAccount_id = (element[0] == undefined) ? "" : element[0].trim();
var LExternal_id = (element[1] == undefined) ? "" : element[1].trim();
var LAmount = (element[2] == undefined) ? "" : element[2].trim();
var LTransaction_date = (element[3] == undefined) ? "" : element[3].trim();
var LOffice_date = (element[4] == undefined) ? "" : element[4].trim();
var LBank = (element[5] == undefined) ? "" : element[5].trim();
var LReceipt_nbr = (element[6] == undefined) ? "" : element[6].trim();
var LType = (element[7] == undefined) ? "" : element[7].trim();
var Lstatement = (element[8] == undefined) ? "" : element[8].trim();
var Lreceipt = (element[9] == undefined) ? "" : element[9].trim();






self.userModel.push(new userModel()
.Account_id(LAccount_id)
.External_id(LExternal_id)
.Amount(LAmount)
.Transaction_date(LTransaction_date)
.Office_date(LOffice_date)
.Bank(LBank)
.Receipt_nbr(LReceipt_nbr)
.Type(LType)
.statement(Lstatement)
.receipt(Lreceipt))

});

}

我如何更新代码以忽略并跳过空行或将它们视为输入文件的末尾或任何其他建议

最佳答案

可以检测当前行是否为换行符。

if(item == "\n") { continue; }

编辑:

正如 matt 所指出的,如果空格由空格组成,则上述解决方案将不起作用。只需删除任何空格即可检测该行是否由空格组成。

if(item == "\n" || item.trim().length == 0) { continue; }

关于javascript - 在javascript中读取CSV文件时如何处理空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44969273/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com