Node.js使用fast-csv解析CSV时,如何跳过全零无效行
如何用fast-csv跳过CSV中的全零行?
要跳过CSV中的全零行,你可以在data事件回调里添加判断逻辑,检查当前行的所有单元格是否都是0(注意CSV解析后单元格是字符串类型,要匹配字符串'0'),如果是全零行就跳过,否则再将数据存入数组。
修改后的完整代码如下:
import { createReadStream } from "fs"; import * as pg from 'pg'; const { Pool } = pg.default; import { parse } from "fast-csv"; const insertdata = async () => { let stream = createReadStream("./testfolder/test.csv"); let csvData = []; let csvStream = parse() .on("data", function (data) { // 判断当前行是否为全零行:所有单元格去除前后空白后等于'0' const isAllZeroRow = data.every(cell => cell.trim() === '0'); if (!isAllZeroRow) { csvData.push(data); } }) .on("end", function () { // 移除表头行 csvData.shift(); // 此处可添加数据插入数据库的逻辑 }); stream.pipe(csvStream); } await insertdata(); export { insertdata }
关键说明:
- 用
Array.every()遍历当前行的所有单元格,搭配trim()处理可能存在的空白字符,确保准确识别全零行。 - 若判定为全零行,直接跳过
push操作,不将该行数据存入数组。
内容的提问来源于stack exchange,提问作者Roger Holland
相关产品推荐
相关产品推荐

