You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改fast-csv代码为CSV文件正确添加表头?

问题原因分析
  • 缺少fs模块引入,直接调用fs.createWriteStream会抛出未定义错误
  • fast-csv的csv.write()方法参数顺序错误:第一个参数为待写入的数据集数组,第二个参数才是包含headers在内的配置项
  • 没有传入现有的CSV数据内容,自然无法生成完整的带表头文件
正确实现代码

场景1:直接生成带表头的全新CSV文件

如果不需要保留原有文件的写入历史,直接把已知数据生成带表头的新文件,可以用以下代码:

const fs = require('fs');
const csv = require('fast-csv');

// 整理现有数据为数组格式
const data = [
  ['nina', 24],
  ['sarah', 25]
];
const ws = fs.createWriteStream('./file.csv');

// 第一个参数传入数据集,第二个参数传入表头配置
csv.write(data, { headers: ['name', 'age'] })
  .pipe(ws);

// 可选:监听写入完成事件
ws.on('finish', () => {
  console.log('CSV写入完成,已成功添加表头');
});

场景2:给已有内容的旧CSV文件追加表头

如果你的CSV文件已经存在原有内容,需要给它加上表头再保存,可以使用先读取旧文件内容、再拼接表头写入的逻辑:

const fs = require('fs');
const csv = require('fast-csv');

const rows = [];
// 先读取原有CSV的内容
fs.createReadStream('./file.csv')
  .pipe(csv.parse())
  .on('data', row => rows.push(row))
  .on('end', () => {
    // 读取完成后写入新内容,带上表头配置
    const ws = fs.createWriteStream('./file.csv');
    csv.write(rows, { headers: ['name', 'age'] })
      .pipe(ws);
  });
最终生成效果

运行代码后得到的CSV内容如下:

name,age
nina,24
sarah,25

内容的提问来源于stack exchange,提问作者Cissus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 13:24:05