我使用过fast-csv模块,它只能忽略空行,但我需要计算空行。
csv
.fromPath(importFile.path, {
headers: true,
ignoreEmpty: true
})
.on("data", function(data) {
console.log(data)
})
答案 0 :(得分:1)
从代码中我看到您已经到了一半。只需在顶部初始化一个count
变量,然后在“数据”事件的回调中将数组中的行拆分,并根据需要检查行是否为空。
function getEmptyRows(csv){
return new Promise((resolve, reject) => {
let emptyRows = 0;
csv
.fromPath(importFile.path, {
headers: true,
ignoreEmpty: true
})
.on("data", (data) => {
const lines = data.trim().split(/\s*[\r\n]+\s*/g);
lines.forEach((line) => {
if(line.match(/([^\s,])/)){
count++;
}
});
})
.on('end', () => {
return resolve(count);
});
});
}
您可以通过以下方式使用上面的功能-
getEmptyRows(csv).then((count) => {
// do your operation...
});
// or as an async/await
async () => {
const count = await getEmptyRows(csv);
// do your operation...
}